From 329628e8e7bb4bc9496058cb55bd3f0876cf92c1 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Sun, 7 Mar 2010 03:01:14 +0000 Subject: [PATCH] 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 --- legacy/eet/src/lib/eet_lib.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/legacy/eet/src/lib/eet_lib.c b/legacy/eet/src/lib/eet_lib.c index b32a73b1d1..4ed8432f60 100644 --- a/legacy/eet/src/lib/eet_lib.c +++ b/legacy/eet/src/lib/eet_lib.c @@ -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 *