summaryrefslogtreecommitdiffstats
path: root/common/facadefactory.cpp
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2015-10-23 09:21:51 +0200
committerChristian Mollekopf <chrigi_1@fastmail.fm>2015-10-23 09:21:51 +0200
commit26c879c241ff3ce207d5ae754818fea1b50bd153 (patch)
tree8a4a610ebd0977ccbdc34068a6bf341df199bcd5 /common/facadefactory.cpp
parent2b8d6ef2a469ef1d025f80d9ae3044e21faa983a (diff)
downloadsink-26c879c241ff3ce207d5ae754818fea1b50bd153.tar.gz
sink-26c879c241ff3ce207d5ae754818fea1b50bd153.zip
Avoid deadlock
Diffstat (limited to 'common/facadefactory.cpp')
-rw-r--r--common/facadefactory.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/common/facadefactory.cpp b/common/facadefactory.cpp
index 64a466d..707d9ad 100644
--- a/common/facadefactory.cpp
+++ b/common/facadefactory.cpp
@@ -63,7 +63,10 @@ std::shared_ptr<void> FacadeFactory::getFacade(const QByteArray &resource, const
63 63
64 const QByteArray k = key(resource, typeName); 64 const QByteArray k = key(resource, typeName);
65 if (!mFacadeRegistry.contains(k)) { 65 if (!mFacadeRegistry.contains(k)) {
66 locker.unlock();
67 //This will call FacadeFactory::instace() internally
66 Akonadi2::ResourceFactory::load(QString::fromLatin1(resource)); 68 Akonadi2::ResourceFactory::load(QString::fromLatin1(resource));
69 locker.relock();
67 } 70 }
68 71
69 if (auto factoryFunction = mFacadeRegistry.value(k)) { 72 if (auto factoryFunction = mFacadeRegistry.value(k)) {