]> granicus.if.org Git - icinga2/commitdiff
Fix deadlock when rescheduling checks.
authorGunnar Beutner <gunnar.beutner@netways.de>
Thu, 28 Nov 2013 19:55:10 +0000 (20:55 +0100)
committerGunnar Beutner <gunnar.beutner@netways.de>
Thu, 28 Nov 2013 19:56:48 +0000 (20:56 +0100)
Fixes #5092

components/checker/checkercomponent.cpp

index 482c1e17e38aaf7f5c2efe1c3b58af0336bbfd01..fd050c6f7647332419f54687e1ca08ffb11a5b0c 100644 (file)
@@ -121,9 +121,12 @@ void CheckerComponent::CheckThreadProc(void)
 
                /* reschedule the service if checks are disabled */
                if (!check) {
+                       m_IdleServices.insert(service);
+                       lock.unlock();
+
                        service->UpdateNextCheck();
 
-                       m_IdleServices.insert(service);
+                       lock.lock();
 
                        continue;
                }