diff options
author | cedric <cedric@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33> | 2012-08-09 10:52:48 +0000 |
---|---|---|
committer | Jaehwan Kim <jae.hwan.kim@samsung.com> | 2012-08-14 22:41:58 +0900 |
commit | de127867a524ca206271f1cce7fa4462c72e31f3 (patch) | |
tree | 11d8f0973a5994f22e1b42edffb286edc35c95ab | |
parent | 43c71792671073c2fa556a7e5b3b6fb427439818 (diff) | |
download | ecore-de127867a524ca206271f1cce7fa4462c72e31f3.tar.gz ecore-de127867a524ca206271f1cce7fa4462c72e31f3.tar.bz2 ecore-de127867a524ca206271f1cce7fa4462c72e31f3.zip |
ecore: correctly shutdown Ecore_Thread.
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/ecore@75039 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33
Conflicts:
ChangeLog
-rw-r--r-- | src/lib/ecore/ecore.c | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/src/lib/ecore/ecore.c b/src/lib/ecore/ecore.c index c5aeb83b..b7e47dc2 100644 --- a/src/lib/ecore/ecore.c +++ b/src/lib/ecore/ecore.c @@ -224,6 +224,7 @@ shutdown_evil: EAPI int ecore_shutdown(void) { + Ecore_Pipe *p; /* * take a lock here because _ecore_event_shutdown() does callbacks */ @@ -237,6 +238,13 @@ ecore_shutdown(void) if (--_ecore_init_count != 0) goto unlock; + if (_ecore_fps_debug) _ecore_fps_debug_shutdown(); + _ecore_poller_shutdown(); + _ecore_animator_shutdown(); + _ecore_glib_shutdown(); + _ecore_job_shutdown(); + _ecore_thread_shutdown(); + /* 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 @@ -246,25 +254,23 @@ ecore_shutdown(void) * ok - this causes other valgrind complaints regarding glib aquiring * locks internally. so fix bug a or bug b. let's leave the original * bug in then and leave this as a note for now - Ecore_Pipe *p; + */ + /* + * It should be fine now as we do wait for thread to shutdown before + * we try to destroy the pipe. + */ p = _thread_call; _thread_call = NULL; ecore_pipe_wait(p, 1, 0.1); ecore_pipe_del(p); eina_lock_free(&_thread_safety); - */ eina_condition_free(&_thread_cond); eina_lock_free(&_thread_mutex); eina_condition_free(&_thread_feedback_cond); eina_lock_free(&_thread_feedback_mutex); eina_lock_free(&_thread_id_lock); - if (_ecore_fps_debug) _ecore_fps_debug_shutdown(); - _ecore_poller_shutdown(); - _ecore_animator_shutdown(); - _ecore_glib_shutdown(); - _ecore_job_shutdown(); - _ecore_thread_shutdown(); + #ifndef HAVE_EXOTIC _ecore_exe_shutdown(); #endif |