Scheduler: Implement new file descriptor event API
[senf.git] / Scheduler / FIFORunner.cci
index 5247d5d..209bd99 100644 (file)
 //#include "FIFORunner.ih"
 
 // Custom includes
+#ifdef SENF_DEBUG
+#include <sstream>
+#include "../Utils/Backtrace.hh"
+#endif
 
 #define prefix_ inline
 ///////////////////////////////cci.p///////////////////////////////////////
 
-prefix_ senf::scheduler::FIFORunner::TaskInfo::TaskInfo()
-    : runnable (false)
+prefix_ senf::scheduler::FIFORunner::TaskInfo::TaskInfo(std::string const & name)
+    : runnable_ (false), name_ (name)
 {}
 
 prefix_ senf::scheduler::FIFORunner::TaskInfo::~TaskInfo()
 {}
 
-prefix_ senf::scheduler::FIFORunner::FIFORunner()
-    : tasks_ (), next_ (tasks_.end())
-{}
+prefix_ void senf::scheduler::FIFORunner::TaskInfo::setRunnable()
+{
+    runnable_ = true;
+}
 
 prefix_ void senf::scheduler::FIFORunner::enqueue(TaskInfo * task)
 {
     tasks_.push_back(*task);
+#ifdef SENF_DEBUG
+    std::stringstream ss;
+    backtrace(ss, 32);
+    task->backtrace_ = ss.str();
+#endif
+}
+
+prefix_ void senf::scheduler::FIFORunner::taskTimeout(unsigned ms)
+{
+    watchdogMs_ = ms;
+}
+
+prefix_ unsigned senf::scheduler::FIFORunner::taskTimeout()
+    const
+{
+    return watchdogMs_;
+}
+
+prefix_ unsigned senf::scheduler::FIFORunner::hangCount()
+    const
+{
+    return hangCount_;
 }
 
 ///////////////////////////////cci.e///////////////////////////////////////