bu5hm4n pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=f32486ced590f9d0826768e7d38e5a3006135786
commit f32486ced590f9d0826768e7d38e5a3006135786 Author: Marcel Hollerbach <[email protected]> Date: Tue Dec 27 22:25:30 2016 +0100 ecore_thread: reset waiter and worker when we have failed otherwise the func_end and func_cancel can get into a endless recursion. --- src/lib/ecore/ecore_thread.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/lib/ecore/ecore_thread.c b/src/lib/ecore/ecore_thread.c index 8af47af..5abe7a2 100644 --- a/src/lib/ecore/ecore_thread.c +++ b/src/lib/ecore/ecore_thread.c @@ -863,7 +863,15 @@ ecore_thread_wait(Ecore_Thread *thread, double wait) if (wait <= 0) break; } - return (waiter.data == NULL) ? EINA_TRUE : EINA_FALSE; + if (!waiter.data) + { + return EINA_TRUE; + } + else + { + _ecore_thread_wait_reset(&waiter, worker); + return EINA_FALSE; + } } EAPI Eina_Bool --
