forked from enlightenment/efl
evas: Fix a few issues after init/shutdown/init
elm_suite would crash when CK_FORK=no is set, because evas was badly initializing or shutting down. Note that elm_suite still crashes with CK_FORK=no but valgrind doesn't complain.
This commit is contained in:
parent
dc18e71903
commit
69a684cf04
|
@ -98,8 +98,8 @@ evas_async_events_init(void)
|
||||||
{
|
{
|
||||||
int filedes[2];
|
int filedes[2];
|
||||||
|
|
||||||
_init_evas_event++;
|
if (_init_evas_event++)
|
||||||
if (_init_evas_event > 1) return _init_evas_event;
|
return _init_evas_event;
|
||||||
|
|
||||||
_fd_pid = getpid();
|
_fd_pid = getpid();
|
||||||
|
|
||||||
|
@ -136,8 +136,8 @@ evas_async_events_init(void)
|
||||||
int
|
int
|
||||||
evas_async_events_shutdown(void)
|
evas_async_events_shutdown(void)
|
||||||
{
|
{
|
||||||
_init_evas_event--;
|
if (--_init_evas_event)
|
||||||
if (_init_evas_event > 0) return _init_evas_event;
|
return _init_evas_event;
|
||||||
|
|
||||||
eina_condition_free(&_thread_cond);
|
eina_condition_free(&_thread_cond);
|
||||||
eina_lock_free(&_thread_mutex);
|
eina_lock_free(&_thread_mutex);
|
||||||
|
@ -145,9 +145,11 @@ evas_async_events_shutdown(void)
|
||||||
eina_lock_free(&_thread_feedback_mutex);
|
eina_lock_free(&_thread_feedback_mutex);
|
||||||
eina_spinlock_free(&_thread_id_lock);
|
eina_spinlock_free(&_thread_id_lock);
|
||||||
|
|
||||||
|
free(async_queue_cache);
|
||||||
|
async_queue_cache = NULL;
|
||||||
|
|
||||||
eina_spinlock_free(&async_lock);
|
eina_spinlock_free(&async_lock);
|
||||||
eina_inarray_flush(&async_queue);
|
eina_inarray_flush(&async_queue);
|
||||||
free(async_queue_cache);
|
|
||||||
|
|
||||||
pipe_close(_fd_read);
|
pipe_close(_fd_read);
|
||||||
pipe_close(_fd_write);
|
pipe_close(_fd_write);
|
||||||
|
|
|
@ -160,7 +160,7 @@ evas_shutdown(void)
|
||||||
evas_thread_shutdown();
|
evas_thread_shutdown();
|
||||||
_evas_preload_thread_shutdown();
|
_evas_preload_thread_shutdown();
|
||||||
evas_async_events_shutdown();
|
evas_async_events_shutdown();
|
||||||
evas_common_shutdown();
|
//evas_common_shutdown();
|
||||||
evas_module_shutdown();
|
evas_module_shutdown();
|
||||||
|
|
||||||
#ifdef BUILD_LOADER_EET
|
#ifdef BUILD_LOADER_EET
|
||||||
|
|
|
@ -226,8 +226,9 @@ timeout_shutdown:
|
||||||
|
|
||||||
evas_thread_worker = 0;
|
evas_thread_worker = 0;
|
||||||
|
|
||||||
eina_inarray_flush(&evas_thread_queue);
|
|
||||||
free(evas_thread_queue_cache);
|
free(evas_thread_queue_cache);
|
||||||
|
evas_thread_queue_cache = NULL;
|
||||||
|
eina_inarray_flush(&evas_thread_queue);
|
||||||
|
|
||||||
eina_threads_shutdown();
|
eina_threads_shutdown();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue