summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Schermer <nick@xfce.org>2013-05-05 12:20:46 +0200
committerNick Schermer <nick@xfce.org>2013-05-05 12:20:46 +0200
commitcadcc633ad33ff77b87d13a973bfbb3bb7ab9467 (patch)
tree407bdd1458afe63c8b53ba96c3f02f2654514687
parentba3fbaf1d8ff59bb5a870eee27f9222cdcf3f6ef (diff)
downloadtumbler-cadcc633ad33ff77b87d13a973bfbb3bb7ab9467.tar.gz
Put thread lock outside loop.
Maybe safer since there are some strange segfaults in this region.
-rw-r--r--tumblerd/tumbler-registry.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/tumblerd/tumbler-registry.c b/tumblerd/tumbler-registry.c
index dabfb92..77bc74f 100644
--- a/tumblerd/tumbler-registry.c
+++ b/tumblerd/tumbler-registry.c
@@ -453,6 +453,8 @@ tumbler_registry_get_thumbnailer_array (TumblerRegistry *registry,
g_return_val_if_fail (TUMBLER_IS_REGISTRY (registry), NULL);
g_return_val_if_fail (infos != NULL, NULL);
+ tumbler_mutex_lock (registry->mutex);
+
/* allocate the thumbnailer array */
thumbnailers = g_new0 (TumblerThumbnailer *, length + 1);
@@ -461,8 +463,6 @@ tumbler_registry_get_thumbnailer_array (TumblerRegistry *registry,
{
g_assert (TUMBLER_IS_FILE_INFO (infos[n]));
- tumbler_mutex_lock (registry->mutex);
-
/* reset */
file_size = 0;
@@ -503,13 +503,13 @@ tumbler_registry_get_thumbnailer_array (TumblerRegistry *registry,
g_object_unref (gfile);
g_list_foreach (list, (GFunc) g_object_unref, NULL);
g_list_free (list);
-
- tumbler_mutex_unlock (registry->mutex);
}
/* NULL-terminate the array */
thumbnailers[n] = NULL;
+ tumbler_mutex_unlock (registry->mutex);
+
return thumbnailers;
}