Author: post
Date: 2010-07-10 20:03:58 +0200 (Sat, 10 Jul 2010)
New Revision: 3472
Modified:
trunk/librawstudio/rs-lens-db.c
trunk/librawstudio/rs-metadata.c
Log:
Create locks around xmlwriter functions - it does not appear to be thread safe.
Modified: trunk/librawstudio/rs-lens-db.c
===================================================================
--- trunk/librawstudio/rs-lens-db.c 2010-07-10 17:48:17 UTC (rev 3471)
+++ trunk/librawstudio/rs-lens-db.c 2010-07-10 18:03:58 UTC (rev 3472)
@@ -113,7 +113,9 @@
{
xmlTextWriterPtr writer;
GList *list;
+ GStaticMutex lock = G_STATIC_MUTEX_INIT;
+ g_static_mutex_lock(&lock);
writer = xmlNewTextWriterFilename(lens_db->path, 0);
if (!writer)
return;
@@ -185,6 +187,7 @@
xmlTextWriterEndDocument(writer);
xmlFreeTextWriter(writer);
+ g_static_mutex_unlock(&lock);
return;
}
Modified: trunk/librawstudio/rs-metadata.c
===================================================================
--- trunk/librawstudio/rs-metadata.c 2010-07-10 17:48:17 UTC (rev 3471)
+++ trunk/librawstudio/rs-metadata.c 2010-07-10 18:03:58 UTC (rev 3472)
@@ -121,10 +121,12 @@
gchar *cache_filename;
gchar *thumb_filename;
xmlTextWriterPtr writer;
+ GStaticMutex lock = G_STATIC_MUTEX_INIT;
if (!dotdir)
return;
+ g_static_mutex_lock(&lock);
basename = g_path_get_basename(filename);
cache_filename = g_strdup_printf("%s/%s.metacache.xml", dotdir,
basename);
@@ -181,6 +183,7 @@
xmlFreeTextWriter(writer);
}
g_free(cache_filename);
+ g_static_mutex_unlock(&lock);
if (metadata->thumbnail)
{
_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit