raster pushed a commit to branch efl-1.18.

http://git.enlightenment.org/core/efl.git/commit/?id=a7f491bafa035de527c3602bcfbed2d096f750d3

commit a7f491bafa035de527c3602bcfbed2d096f750d3
Author: Carsten Haitzler (Rasterman) <[email protected]>
Date:   Fri Oct 21 09:39:00 2016 +0900

    ecore anim - actually fix by checking fd not thread handle
    
    this should remove a 0.5 sec or so pause at shutdown of efl apps.
    
    @fix
---
 src/lib/ecore/ecore_anim.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/lib/ecore/ecore_anim.c b/src/lib/ecore/ecore_anim.c
index 7f920ec..66d08cf 100644
--- a/src/lib/ecore/ecore_anim.c
+++ b/src/lib/ecore/ecore_anim.c
@@ -65,9 +65,9 @@ static Ecore_Cb end_tick_cb = NULL;
 static const void *end_tick_data = NULL;
 static Eina_Bool animator_ran = EINA_FALSE;
 
-static int timer_fd_read = -1;
-static int timer_fd_write = -1;
-static volatile Ecore_Thread *timer_thread = NULL;
+static volatile int timer_fd_read = -1;
+static volatile int timer_fd_write = -1;
+static Ecore_Thread *timer_thread = NULL;
 static volatile int timer_event_is_busy = 0;
 
 static void
@@ -215,7 +215,9 @@ _timer_tick_quit(void)
 
    if (timer_fd_read < 0) return;
    _tick_send(-1);
-   for (i = 0; (i < 500) && (timer_thread); i++)
+   // SHOULd use this, but broken if thread shutting down already:
+   // ecore_thread_wait(timer_thread, 0.5);
+   for (i = 0; (i < 500) && (timer_fd_write >= 0); i++)
      {
         usleep(1000);
      }

-- 


Reply via email to