From 910fd36351b16a899a121ae39b2d291f134b755b Mon Sep 17 00:00:00 2001 From: raster 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. git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eet@46917 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- src/lib/eet_lib.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/lib/eet_lib.c b/src/lib/eet_lib.c index b32a73b..4ed8432 100644 --- a/src/lib/eet_lib.c +++ b/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 * -- 2.7.4