]> granicus.if.org Git - icinga2/commitdiff
Reschedule timers even if the OnTimerExpired handler threw an exception.
authorGunnar Beutner <gunnar.beutner@netways.de>
Tue, 19 Mar 2013 15:12:28 +0000 (16:12 +0100)
committerGunnar Beutner <gunnar.beutner@netways.de>
Tue, 19 Mar 2013 15:12:28 +0000 (16:12 +0100)
lib/base/timer.cpp

index 4d0938fc0babff05ca7a2e08e98476fdde021901..a87a0d1edd7272690bde5e5bc97b0da729274f95 100644 (file)
@@ -117,7 +117,13 @@ void Timer::Call(void)
 
        Timer::Ptr self = GetSelf();
 
-       OnTimerExpired(self);
+       try {
+               OnTimerExpired(self);
+       } catch (...) {
+               Reschedule();
+
+               throw;
+       }
 
        Reschedule();
 }