X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Scheduler%2FScheduler.cc;h=3203d205e7f7d399ec67dc275a57575ea99bf291;hb=4e05bff7db89ed83bfe3846c56273c7c91c6be59;hp=246745936d7a3d516eb3dca76f3d9677a233366d;hpb=79e54eda6a7fb5ac3fa5b37f408dd386454c5bbd;p=senf.git diff --git a/Scheduler/Scheduler.cc b/Scheduler/Scheduler.cc index 2467459..3203d20 100644 --- a/Scheduler/Scheduler.cc +++ b/Scheduler/Scheduler.cc @@ -58,12 +58,12 @@ namespace { { senf::scheduler::detail::FIFORunner::instance().startWatchdog(); senf::scheduler::detail::SignalDispatcher::instance().unblockSignals(); - senf::scheduler::detail::TimerDispatcher::instance().unblockSignals(); + senf::scheduler::detail::TimerDispatcher::instance().enable(); } ~SchedulerScopedInit() { - senf::scheduler::detail::TimerDispatcher::instance().blockSignals(); + senf::scheduler::detail::TimerDispatcher::instance().disable(); senf::scheduler::detail::SignalDispatcher::instance().blockSignals(); senf::scheduler::detail::FIFORunner::instance().stopWatchdog(); } @@ -74,13 +74,16 @@ prefix_ void senf::scheduler::process() { SchedulerScopedInit initScheduler; terminate_ = false; + detail::TimerDispatcher::instance().reschedule(); while(! terminate_ && ! (detail::FdDispatcher::instance().empty() && detail::TimerDispatcher::instance().empty() && detail::FileDispatcher::instance().empty())) { detail::FdManager::instance().processOnce(); detail::FileDispatcher::instance().prepareRun(); detail::EventHookDispatcher::instance().prepareRun(); + detail::TimerDispatcher::instance().prepareRun(); detail::FIFORunner::instance().run(); + detail::TimerDispatcher::instance().reschedule(); } }