ecore: Create a lockless ecore_event_handler_del
Signed-off-by: Mike McCormack <mj.mccormack@samsung.com> SVN revision: 62375
This commit is contained in:
parent
01e790ed40
commit
bfffcce2fe
|
@ -171,10 +171,7 @@ ecore_event_handler_del(Ecore_Event_Handler *event_handler)
|
|||
"ecore_event_handler_del");
|
||||
goto unlock;
|
||||
}
|
||||
EINA_SAFETY_ON_TRUE_GOTO(event_handler->delete_me, unlock);
|
||||
event_handler->delete_me = 1;
|
||||
event_handlers_delete_list = eina_list_append(event_handlers_delete_list, event_handler);
|
||||
data = event_handler->data;
|
||||
data = _ecore_event_handler_del(event_handler);
|
||||
unlock:
|
||||
_ecore_unlock();
|
||||
|
||||
|
@ -441,6 +438,15 @@ ecore_event_current_event_get(void)
|
|||
* @}
|
||||
*/
|
||||
|
||||
EAPI void *
|
||||
_ecore_event_handler_del(Ecore_Event_Handler *event_handler)
|
||||
{
|
||||
EINA_SAFETY_ON_TRUE_RETURN_VAL(event_handler->delete_me, NULL);
|
||||
event_handler->delete_me = 1;
|
||||
event_handlers_delete_list = eina_list_append(event_handlers_delete_list, event_handler);
|
||||
return event_handler->data;
|
||||
}
|
||||
|
||||
void
|
||||
_ecore_event_shutdown(void)
|
||||
{
|
||||
|
|
|
@ -31,7 +31,7 @@ _ecore_job_init(void)
|
|||
void
|
||||
_ecore_job_shutdown(void)
|
||||
{
|
||||
ecore_event_handler_del(_ecore_job_handler);
|
||||
_ecore_event_handler_del(_ecore_job_handler);
|
||||
_ecore_job_handler = NULL;
|
||||
}
|
||||
|
||||
|
|
|
@ -147,6 +147,7 @@ void _ecore_event_shutdown(void);
|
|||
int _ecore_event_exist(void);
|
||||
Ecore_Event *_ecore_event_add(int type, void *ev, Ecore_End_Cb func_free, void *data);
|
||||
void _ecore_event_call(void);
|
||||
void *_ecore_event_handler_del(Ecore_Event_Handler *event_handler);
|
||||
|
||||
Ecore_Timer *_ecore_exe_doomsday_clock_get(Ecore_Exe *exe);
|
||||
void _ecore_exe_doomsday_clock_set(Ecore_Exe *exe, Ecore_Timer *dc);
|
||||
|
|
|
@ -839,7 +839,7 @@ _ecore_thread_shutdown(void)
|
|||
}
|
||||
if (_ecore_thread_global_hash)
|
||||
eina_hash_free(_ecore_thread_global_hash);
|
||||
ecore_event_handler_del(del_handler);
|
||||
_ecore_event_handler_del(del_handler);
|
||||
have_main_loop_thread = 0;
|
||||
del_handler = NULL;
|
||||
|
||||
|
|
Loading…
Reference in New Issue