forked from enlightenment/efl
fix ecore_thread_global_data_wait to work when no data exists yet
@fix this is based on feedback from wonil choi, where this didn't work right. this also has an if check for the hash itself.
This commit is contained in:
parent
c3f0a0c59d
commit
ddc09dd04e
|
@ -1311,15 +1311,14 @@ ecore_thread_global_data_wait(const char *key,
|
||||||
if (!key)
|
if (!key)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if (!_ecore_thread_global_hash)
|
|
||||||
return NULL;
|
|
||||||
if (seconds > 0)
|
if (seconds > 0)
|
||||||
tm = ecore_time_get() + seconds;
|
tm = ecore_time_get() + seconds;
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
LRWKRL(_ecore_thread_global_hash_lock);
|
LRWKRL(_ecore_thread_global_hash_lock);
|
||||||
ret = eina_hash_find(_ecore_thread_global_hash, key);
|
if (_ecore_thread_global_hash)
|
||||||
|
ret = eina_hash_find(_ecore_thread_global_hash, key);
|
||||||
LRWKU(_ecore_thread_global_hash_lock);
|
LRWKU(_ecore_thread_global_hash_lock);
|
||||||
if ((ret) || (!seconds) || ((seconds > 0) && (tm <= ecore_time_get())))
|
if ((ret) || (!seconds) || ((seconds > 0) && (tm <= ecore_time_get())))
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue