diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2015-10-23 09:21:51 +0200 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2015-10-23 09:21:51 +0200 |
commit | 26c879c241ff3ce207d5ae754818fea1b50bd153 (patch) | |
tree | 8a4a610ebd0977ccbdc34068a6bf341df199bcd5 /common/facadefactory.cpp | |
parent | 2b8d6ef2a469ef1d025f80d9ae3044e21faa983a (diff) | |
download | sink-26c879c241ff3ce207d5ae754818fea1b50bd153.tar.gz sink-26c879c241ff3ce207d5ae754818fea1b50bd153.zip |
Avoid deadlock
Diffstat (limited to 'common/facadefactory.cpp')
-rw-r--r-- | common/facadefactory.cpp | 3 |
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)) { |