ecore_thread: reset waiter and worker when we have failed

otherwise the func_end and func_cancel can get into a endless recursion.
This commit is contained in:
Marcel Hollerbach 2016-12-27 22:25:30 +01:00
parent 4b18b472ba
commit f32486ced5
1 changed files with 9 additions and 1 deletions

View File

@ -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