fixed boost/intrusive/iset includes
[senf.git] / Scheduler / FIFORunner.hh
index 27b626f..1bfdd16 100644 (file)
@@ -29,8 +29,8 @@
 // Custom includes
 #include <signal.h>
 #include <boost/utility.hpp>
-#include "../boost/intrusive/ilist.hpp"
-#include "../boost/intrusive/ilist_hook.hpp"
+#include <boost/intrusive/ilist.hpp>
+#include <boost/intrusive/ilist_hook.hpp>
 #include "../Utils/singleton.hh"
 #include "EventManager.hh"
 
@@ -99,15 +99,19 @@ namespace detail {
 
         void taskTimeout(unsigned ms);
         unsigned taskTimeout() const;
+        void abortOnTimeout(bool flag);
+        bool abortOnTimeout() const;
 
         void startWatchdog();
         void stopWatchdog();
 
-        unsigned hangCount() const;
+        unsigned hangCount();
 
         iterator begin() const;
         iterator end() const;
 
+        void yield();
+
     protected:
 
     private:
@@ -115,6 +119,7 @@ namespace detail {
         ~FIFORunner();
 
         static void watchdog(int, siginfo_t *, void *);
+        void watchdogError();
 
         TaskList::iterator priorityEnd(TaskInfo::Priority p);
         void run(TaskList::iterator f, TaskList::iterator l);
@@ -137,12 +142,14 @@ namespace detail {
         timer_t watchdogId_;
         bool watchdogRunning_;
         unsigned watchdogMs_;
+        bool watchdogAbort_;
         std::string runningName_;
 #   ifdef SENF_DEBUG
         std::string runningBacktrace_;
 #   endif
         unsigned watchdogCount_;
         unsigned hangCount_;
+        bool yield_;
 
         friend void senf::scheduler::restart();
         friend class singleton<FIFORunner>;