PPI: Missing commit
[senf.git] / Scheduler / FIFORunner.cci
index b2f6fe6..0ddc889 100644 (file)
@@ -113,6 +113,8 @@ prefix_ void senf::scheduler::detail::FIFORunner::enqueue(TaskInfo * task)
 prefix_ void senf::scheduler::detail::FIFORunner::taskTimeout(unsigned ms)
 {
     watchdogMs_ = ms;
+    if (watchdogRunning_)
+        startWatchdog();
 }
 
 prefix_ unsigned senf::scheduler::detail::FIFORunner::taskTimeout()
@@ -121,10 +123,22 @@ prefix_ unsigned senf::scheduler::detail::FIFORunner::taskTimeout()
     return watchdogMs_;
 }
 
-prefix_ unsigned senf::scheduler::detail::FIFORunner::hangCount()
+prefix_ void senf::scheduler::detail::FIFORunner::abortOnTimeout(bool flag)
+{
+    watchdogAbort_ = flag;
+}
+
+prefix_ bool senf::scheduler::detail::FIFORunner::abortOnTimeout()
     const
 {
-    return hangCount_;
+    return watchdogAbort_;
+}
+
+prefix_ unsigned senf::scheduler::detail::FIFORunner::hangCount()
+{
+    unsigned hc (hangCount_);
+    hangCount_ = 0;
+    return hc;
 }
 
 prefix_ senf::scheduler::detail::FIFORunner::iterator
@@ -144,6 +158,11 @@ prefix_ senf::scheduler::detail::FIFORunner::iterator senf::scheduler::detail::F
         EventManager::IteratorFilter(), tasks_.end(), tasks_.end());
 }
 
+prefix_ void senf::scheduler::detail::FIFORunner::yield()
+{
+    yield_ = true;
+}
+
 ///////////////////////////////cci.e///////////////////////////////////////
 #undef prefix_