eio: limit race condition during shutdown.

This commit is contained in:
Cedric BAIL 2015-08-19 20:21:02 +02:00
parent a197aa366b
commit c11f40a3eb
1 changed files with 6 additions and 3 deletions

View File

@ -329,17 +329,20 @@ eio_monitor_fallback_del(Eio_Monitor *monitor)
if (!backend) return; if (!backend) return;
backend->parent = NULL; if (backend->work) ecore_thread_cancel(backend->work);
if (backend->timer) ecore_timer_del(backend->timer); if (backend->timer) ecore_timer_del(backend->timer);
backend->timer = NULL; backend->timer = NULL;
if (backend->idler) ecore_idler_del(backend->idler); if (backend->idler) ecore_idler_del(backend->idler);
backend->idler = NULL; backend->idler = NULL;
if (backend->work)
if (backend->work && !ecore_thread_wait(backend->work, 0.3))
{ {
backend->delete_me = EINA_TRUE; backend->delete_me = EINA_TRUE;
ecore_thread_cancel(backend->work);
return; return;
} }
backend->parent = NULL;
eina_hash_free(backend->children); eina_hash_free(backend->children);
free(backend); free(backend);
} }