forked from enlightenment/efl
see comments for info. a short workaround for now.
SVN revision: 66258
This commit is contained in:
parent
94c73aee09
commit
94e5832ce8
|
@ -217,14 +217,23 @@ shutdown_evil:
|
||||||
EAPI int
|
EAPI int
|
||||||
ecore_shutdown(void)
|
ecore_shutdown(void)
|
||||||
{
|
{
|
||||||
|
Ecore_Pipe *p;
|
||||||
/*
|
/*
|
||||||
* take a lock here because _ecore_event_shutdown() does callbacks
|
* take a lock here because _ecore_event_shutdown() does callbacks
|
||||||
*/
|
*/
|
||||||
_ecore_lock();
|
_ecore_lock();
|
||||||
if (--_ecore_init_count != 0)
|
if (--_ecore_init_count != 0)
|
||||||
goto unlock;
|
goto unlock;
|
||||||
|
|
||||||
ecore_pipe_del(_thread_call);
|
/* this looks horrible - a hack for now, but something to note. as
|
||||||
|
* we delete the _thread_call pipe a thread COULD be doing
|
||||||
|
* ecore_pipe_write() or what not to it at the same time - we
|
||||||
|
* must ensure all possible users of this _thread_call are finished
|
||||||
|
* and exited before we delete it here */
|
||||||
|
p = _thread_call;
|
||||||
|
_thread_call = NULL;
|
||||||
|
ecore_pipe_wait(p, 1, 0.1);
|
||||||
|
ecore_pipe_del(p);
|
||||||
eina_lock_free(&_thread_safety);
|
eina_lock_free(&_thread_safety);
|
||||||
eina_condition_free(&_thread_cond);
|
eina_condition_free(&_thread_cond);
|
||||||
eina_lock_free(&_thread_mutex);
|
eina_lock_free(&_thread_mutex);
|
||||||
|
|
Loading…
Reference in New Issue