ecore: Lock in ecore_shutdown

Avoid unbalanced locks when calling event-free callbacks.

Signed-off-by: Mike McCormack <mj.mccormack@samsung.com>

SVN revision: 62348
This commit is contained in:
Mike McCormack 2011-08-11 12:01:19 +00:00 committed by Mike McCormack
parent e1b75002f0
commit 0fad5661b0
1 changed files with 7 additions and 1 deletions

View File

@ -177,8 +177,12 @@ ecore_init(void)
EAPI int
ecore_shutdown(void)
{
/*
* take a lock here because _ecore_event_shutdown() does callbacks
*/
_ecore_lock();
if (--_ecore_init_count != 0)
return _ecore_init_count;
goto unlock;
ecore_pipe_del(_thread_call);
eina_lock_free(&_thread_safety);
@ -217,6 +221,8 @@ ecore_shutdown(void)
#ifdef HAVE_EVIL
evil_shutdown();
#endif
unlock:
_ecore_unlock();
return _ecore_init_count;
}