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

-- 


Reply via email to