forked from enlightenment/efl
ecore: correctly shutdown Ecore_Thread.
SVN revision: 75039
This commit is contained in:
parent
a5e2b68c69
commit
e905f3ccd2
|
@ -848,3 +848,6 @@
|
||||||
marshaller changes the pointer to NULL to when the object is destroyed
|
marshaller changes the pointer to NULL to when the object is destroyed
|
||||||
on the client side. Fixes #1258.
|
on the client side. Fixes #1258.
|
||||||
|
|
||||||
|
2012-08-09 Cedric Bail
|
||||||
|
|
||||||
|
* Correctly shutdown Ecore_Thread.
|
||||||
|
|
|
@ -27,6 +27,7 @@ Fixes:
|
||||||
- Reduce race condition on shutdown of Ecore_Thread.
|
- Reduce race condition on shutdown of Ecore_Thread.
|
||||||
- Force cancel of all running Ecore_Thread on shutdown.
|
- Force cancel of all running Ecore_Thread on shutdown.
|
||||||
- Make Ecore_Thread work reliably when called without a running main loop.
|
- Make Ecore_Thread work reliably when called without a running main loop.
|
||||||
|
- Correctly shutdown Ecore_Thread.
|
||||||
|
|
||||||
* ecore_x
|
* ecore_x
|
||||||
- Fix unitialized Ecore_X_Atom use.
|
- Fix unitialized Ecore_X_Atom use.
|
||||||
|
|
|
@ -224,6 +224,7 @@ 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
|
||||||
*/
|
*/
|
||||||
|
@ -237,6 +238,13 @@ ecore_shutdown(void)
|
||||||
if (--_ecore_init_count != 0)
|
if (--_ecore_init_count != 0)
|
||||||
goto unlock;
|
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
|
/* this looks horrible - a hack for now, but something to note. as
|
||||||
* we delete the _thread_call pipe a thread COULD be doing
|
* we delete the _thread_call pipe a thread COULD be doing
|
||||||
* ecore_pipe_write() or what not to it at the same time - we
|
* 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
|
* ok - this causes other valgrind complaints regarding glib aquiring
|
||||||
* locks internally. so fix bug a or bug b. let's leave the original
|
* 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
|
* 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;
|
p = _thread_call;
|
||||||
_thread_call = NULL;
|
_thread_call = NULL;
|
||||||
ecore_pipe_wait(p, 1, 0.1);
|
ecore_pipe_wait(p, 1, 0.1);
|
||||||
ecore_pipe_del(p);
|
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);
|
||||||
eina_condition_free(&_thread_feedback_cond);
|
eina_condition_free(&_thread_feedback_cond);
|
||||||
eina_lock_free(&_thread_feedback_mutex);
|
eina_lock_free(&_thread_feedback_mutex);
|
||||||
eina_lock_free(&_thread_id_lock);
|
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
|
#ifndef HAVE_EXOTIC
|
||||||
_ecore_exe_shutdown();
|
_ecore_exe_shutdown();
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue