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

Reply via email to