Mercurial > hg > svcore
comparison 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 | 
   comparison
  equal
  deleted
  inserted
  replaced
| 481:a82645e788fc | 482:f54381e01141 | 
|---|---|
| 61 } | 61 } | 
| 62 | 62 | 
| 63 void | 63 void | 
| 64 TransformFactory::startPopulationThread() | 64 TransformFactory::startPopulationThread() | 
| 65 { | 65 { | 
| 66 MutexLocker locker(&m_uninstalledTransformsMutex, | 66 m_uninstalledTransformsMutex.lock(); | 
| 67 "TransformFactory::startPopulationThread"); | 67 | 
| 68 | 68 if (m_thread) { | 
| 69 if (m_thread) return; | 69 m_uninstalledTransformsMutex.unlock(); | 
| 70 | 70 return; | 
| 71 } | |
| 71 m_thread = new UninstalledTransformsPopulateThread(this); | 72 m_thread = new UninstalledTransformsPopulateThread(this); | 
| 73 | |
| 74 m_uninstalledTransformsMutex.unlock(); | |
| 75 | |
| 72 m_thread->start(); | 76 m_thread->start(); | 
| 73 } | 77 } | 
| 74 | 78 | 
| 75 void | 79 void | 
| 76 TransformFactory::UninstalledTransformsPopulateThread::run() | 80 TransformFactory::UninstalledTransformsPopulateThread::run() | 
| 171 populateUninstalledTransforms(); | 175 populateUninstalledTransforms(); | 
| 172 m_uninstalledTransformsMutex.lock(); | 176 m_uninstalledTransformsMutex.lock(); | 
| 173 } | 177 } | 
| 174 | 178 | 
| 175 if (m_uninstalledTransforms.find(id) != m_uninstalledTransforms.end()) { | 179 if (m_uninstalledTransforms.find(id) != m_uninstalledTransforms.end()) { | 
| 180 m_uninstalledTransformsMutex.unlock(); | |
| 176 return TransformNotInstalled; | 181 return TransformNotInstalled; | 
| 177 } | 182 } | 
| 178 | 183 | 
| 179 m_uninstalledTransformsMutex.unlock(); | 184 m_uninstalledTransformsMutex.unlock(); | 
| 180 | |
| 181 return TransformUnknown; | 185 return TransformUnknown; | 
| 182 } | 186 } | 
| 183 | 187 | 
| 184 | 188 | 
| 185 std::vector<QString> | 189 std::vector<QString> | 
