forked from enlightenment/efl
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:
parent
e9b23a2d30
commit
329628e8e7
|
@ -1333,7 +1333,7 @@ eet_internal_close(Eet_File *ef, Eina_Bool locked)
|
||||||
/* deref */
|
/* deref */
|
||||||
ef->references--;
|
ef->references--;
|
||||||
/* if its still referenced - dont go any further */
|
/* 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 */
|
/* flush any writes */
|
||||||
err = eet_flush2(ef);
|
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 not urgent to delete it - dont free it - leave it in cache */
|
||||||
if ((!ef->delete_me_now) && (ef->mode == EET_FILE_MODE_READ))
|
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 */
|
/* remove from cache */
|
||||||
if (ef->mode == EET_FILE_MODE_READ)
|
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);
|
eet_cache_del(ef, &eet_writers, &eet_writers_num, &eet_writers_alloc);
|
||||||
|
|
||||||
/* we can unlock the cache now */
|
/* we can unlock the cache now */
|
||||||
if (!locked) UNLOCK_CACHE;
|
if (!locked)
|
||||||
|
{
|
||||||
|
UNLOCK_CACHE;
|
||||||
|
}
|
||||||
|
|
||||||
DESTROY_FILE(ef);
|
DESTROY_FILE(ef);
|
||||||
|
|
||||||
|
@ -1402,10 +1408,6 @@ eet_internal_close(Eet_File *ef, Eina_Bool locked)
|
||||||
/* free it */
|
/* free it */
|
||||||
free(ef);
|
free(ef);
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
on_error:
|
|
||||||
if (!locked) UNLOCK_CACHE;
|
|
||||||
return EET_ERROR_NONE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
EAPI Eet_File *
|
EAPI Eet_File *
|
||||||
|
|
Loading…
Reference in New Issue