# HG changeset patch # User Chris Cannam # Date 1226089557 0 # Node ID acddcc3cca362ca8c14133c21b3d672b7e8d58ac # Parent a70dcfed59c1105d88739882a004119ed1150c75 * Avoid deadlock in indexer diff -r a70dcfed59c1 -r acddcc3cca36 rdf/PluginRDFIndexer.cpp --- a/rdf/PluginRDFIndexer.cpp Fri Nov 07 17:31:06 2008 +0000 +++ b/rdf/PluginRDFIndexer.cpp Fri Nov 07 20:25:57 2008 +0000 @@ -161,10 +161,12 @@ QString PluginRDFIndexer::getIdForPluginURI(QString uri) { - QMutexLocker locker(&m_mutex); + m_mutex.lock(); if (m_uriToIdMap.find(uri) == m_uriToIdMap.end()) { + m_mutex.unlock(); + // Haven't found this uri referenced in any document on the // local filesystem; try resolving the pre-fragment part of // the uri as a document URL and reading that if possible. @@ -178,12 +180,16 @@ indexURL(baseUrl); + m_mutex.lock(); + if (m_uriToIdMap.find(uri) == m_uriToIdMap.end()) { m_uriToIdMap[uri] = ""; } } - return m_uriToIdMap[uri]; + QString id = m_uriToIdMap[uri]; + m_mutex.unlock(); + return id; } QString