try fix to refactor of ecore where thread_count went negative as it
authorraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Thu, 29 Mar 2012 11:05:59 +0000 (11:05 +0000)
committerraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Thu, 29 Mar 2012 11:05:59 +0000 (11:05 +0000)
was --'d when a no_queue thread finished too.

git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/ecore@69741 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/ecore/ecore_thread.c

index 5c149d6..af70643 100644 (file)
@@ -289,7 +289,10 @@ _ecore_thread_end(Ecore_Pthread_Data *pth,
 {
    Ecore_Pthread_Worker *worker = (Ecore_Pthread_Worker *)work;
 
-   if (!worker->message_run || !worker->feedback_run || (worker->feedback_run && !worker->no_queue))
+   if (((!worker->message_run) || 
+        (!worker->feedback_run) ||
+        ((worker->feedback_run) && (!worker->no_queue))) &&
+       (!worker->no_queue))
      _ecore_thread_count--;
 
    if (PHJ(pth->thread) != 0)
@@ -578,7 +581,7 @@ _ecore_direct_worker(Ecore_Pthread_Worker *work)
    end->cancel = EINA_FALSE;
    end->feedback_run = EINA_FALSE;
    end->message_run = EINA_FALSE;
-   end->no_queue = EINA_FALSE;
+//   end->no_queue = EINA_FALSE;
    end->kill = EINA_FALSE;
    end->hash = NULL;
    LKI(end->mutex);
@@ -641,7 +644,7 @@ restart:
    work->feedback_run = EINA_FALSE;
    work->message_run = EINA_FALSE;
    work->kill = EINA_FALSE;
-   work->no_queue = EINA_FALSE;
+//   work->no_queue = EINA_FALSE;
    work->hash = NULL;
 
    ecore_main_loop_thread_safe_call_async(_ecore_thread_handler, work);