summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--comm/Scheduler.cc7
1 files changed, 7 insertions, 0 deletions
diff --git a/comm/Scheduler.cc b/comm/Scheduler.cc
index 9140abe..5290a61 100644
--- a/comm/Scheduler.cc
+++ b/comm/Scheduler.cc
@@ -17,6 +17,7 @@
#include "Scheduler.h"
#include "TimeOut.h"
#include "SignalHandler.h"
+#include "error.h"
#include <signal.h> // for NSIG
#include <sys/errno.h>
@@ -542,6 +543,11 @@ IvlScheduler :: LoopScan (bool nointr)
if (SigFired)
HandleDeferredSignals ();
+ if (!Looping) {
+ ExecHooks (true);
+ return isMpxTerminated;
+ }
+
#if 0
/* Then, timers */
IvlCoreTimer::Fire (&Timers);
@@ -588,6 +594,7 @@ IvlScheduler :: LoopScan (bool nointr)
if (nointr && nb_pending_fd == -1 && errno == EINTR)
continue;
else {
+ SysError (ErrWarn, "IvlScheduler::LoopScan failed");
ExecHooks (true);
return isMpxError;
}