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:
Carsten Haitzler 2014-05-15 21:23:51 +09:00
parent c3f0a0c59d
commit ddc09dd04e
1 changed files with 2 additions and 3 deletions

View File

@ -1311,15 +1311,14 @@ ecore_thread_global_data_wait(const char *key,
if (!key)
return NULL;
if (!_ecore_thread_global_hash)
return NULL;
if (seconds > 0)
tm = ecore_time_get() + seconds;
while (1)
{
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);
if ((ret) || (!seconds) || ((seconds > 0) && (tm <= ecore_time_get())))
break;