summaryrefslogtreecommitdiff
path: root/src/lib/eet/eet_dictionary.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/eet/eet_dictionary.c')
-rw-r--r--src/lib/eet/eet_dictionary.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/lib/eet/eet_dictionary.c b/src/lib/eet/eet_dictionary.c
index ea54b118ad..4413a6d690 100644
--- a/src/lib/eet/eet_dictionary.c
+++ b/src/lib/eet/eet_dictionary.c
@@ -95,14 +95,9 @@ on_error:
}
void
-eet_dictionary_write_prepare(Eet_Dictionary *ed)
+eet_dictionary_write_prepare_unlocked(Eet_Dictionary *ed)
{
- eina_rwlock_take_write(&ed->rwlock);
- if (!ed->add_hash)
- {
- eina_rwlock_release(&ed->rwlock);
- return;
- }
+ if (!ed->add_hash) return;
ed->total = ed->count;
@@ -113,6 +108,13 @@ eet_dictionary_write_prepare(Eet_Dictionary *ed)
eina_hash_foreach(ed->add_hash, _eet_dictionary_write_prepare_hash_cb, ed);
eina_hash_free(ed->add_hash);
ed->add_hash = NULL;
+}
+
+void
+eet_dictionary_write_prepare(Eet_Dictionary *ed)
+{
+ eina_rwlock_take_write(&ed->rwlock);
+ eet_dictionary_write_prepare_unlocked(ed);
eina_rwlock_release(&ed->rwlock);
}