remove this patch (and will remove next too).. somethgn created a deadlock..

for NON threaded apps (e17). specifically:

   if (!locked) LOCK_CACHE;
   
at the top of eet_internal_close() gets called (locked is 0) and deadlocks e.
this is worse than threaded apps having problems. so... need to revert.



SVN revision: 46917
This commit is contained in:
Carsten Haitzler 2010-03-07 03:01:14 +00:00
parent e9b23a2d30
commit 329628e8e7
1 changed files with 9 additions and 7 deletions

View File

@ -1333,7 +1333,7 @@ eet_internal_close(Eet_File *ef, Eina_Bool locked)
/* deref */
ef->references--;
/* if its still referenced - dont go any further */
if (ef->references > 0) goto on_error;
if (ef->references > 0) return EET_ERROR_NONE;
/* flush any writes */
err = eet_flush2(ef);
@ -1342,7 +1342,10 @@ eet_internal_close(Eet_File *ef, Eina_Bool locked)
/* if not urgent to delete it - dont free it - leave it in cache */
if ((!ef->delete_me_now) && (ef->mode == EET_FILE_MODE_READ))
goto on_error;
{
if (!locked) UNLOCK_CACHE;
return EET_ERROR_NONE;
}
/* remove from cache */
if (ef->mode == EET_FILE_MODE_READ)
@ -1351,7 +1354,10 @@ eet_internal_close(Eet_File *ef, Eina_Bool locked)
eet_cache_del(ef, &eet_writers, &eet_writers_num, &eet_writers_alloc);
/* we can unlock the cache now */
if (!locked) UNLOCK_CACHE;
if (!locked)
{
UNLOCK_CACHE;
}
DESTROY_FILE(ef);
@ -1402,10 +1408,6 @@ eet_internal_close(Eet_File *ef, Eina_Bool locked)
/* free it */
free(ef);
return err;
on_error:
if (!locked) UNLOCK_CACHE;
return EET_ERROR_NONE;
}
EAPI Eet_File *