diff transform/TransformFactory.cpp @ 482:f54381e01141

* Fix a deadlock * Make debug output more suited to datastore rdf implementation
author Chris Cannam
date Fri, 14 Nov 2008 12:29:48 +0000
parents a82645e788fc
children 45ded09e4710
line wrap: on
line diff
--- a/transform/TransformFactory.cpp	Fri Nov 14 10:10:05 2008 +0000
+++ b/transform/TransformFactory.cpp	Fri Nov 14 12:29:48 2008 +0000
@@ -63,12 +63,16 @@
 void
 TransformFactory::startPopulationThread()
 {
-    MutexLocker locker(&m_uninstalledTransformsMutex,
-                       "TransformFactory::startPopulationThread");
+    m_uninstalledTransformsMutex.lock();
 
-    if (m_thread) return;
+    if (m_thread) {
+        m_uninstalledTransformsMutex.unlock();
+        return;
+    }
+    m_thread = new UninstalledTransformsPopulateThread(this);
 
-    m_thread = new UninstalledTransformsPopulateThread(this);
+    m_uninstalledTransformsMutex.unlock();
+
     m_thread->start();
 }
 
@@ -173,11 +177,11 @@
     }
 
     if (m_uninstalledTransforms.find(id) != m_uninstalledTransforms.end()) {
+        m_uninstalledTransformsMutex.unlock();
         return TransformNotInstalled;
     }
 
     m_uninstalledTransformsMutex.unlock();
-
     return TransformUnknown;
 }