Mercurial > hg > svcore
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; }