try fix to refactor of ecore where thread_count went negative as it

was --'d when a no_queue thread finished too.



SVN revision: 69741
This commit is contained in:
Carsten Haitzler 2012-03-29 11:05:59 +00:00
parent 04596e4374
commit 74f07c6893
1 changed files with 6 additions and 3 deletions

View 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);