]> granicus.if.org Git - icinga2/commitdiff
cluster: Fix deadlock.
authorGunnar Beutner <gunnar.beutner@netways.de>
Tue, 17 Sep 2013 12:32:37 +0000 (14:32 +0200)
committerGunnar Beutner <gunnar.beutner@netways.de>
Tue, 17 Sep 2013 12:32:37 +0000 (14:32 +0200)
components/cluster/clustercomponent.cpp

index 613d467bf767ed793ce306613999cf90555ee260..4fc1fbfe1024829f5ba713d75d828837ab04489c 100644 (file)
@@ -1354,6 +1354,7 @@ void ClusterComponent::MessageHandler(const Endpoint::Ptr& sender, const Diction
 
                        localConfig->Remove(hash);
                }
+               olock.Unlock();
 
                ObjectLock olock2(localConfig);
                BOOST_FOREACH(boost::tie(key, boost::tuples::ignore), localConfig) {
@@ -1362,6 +1363,7 @@ void ClusterComponent::MessageHandler(const Endpoint::Ptr& sender, const Diction
                        (void) unlink(path.CStr());
                        configChange = true;
                }
+               olock2.Unlock();
 
                if (configChange) {
                        Log(LogInformation, "cluster", "Restarting after configuration change.");