/** \file
\brief FIFORunner public header */
-#ifndef HH_FIFORunner_
-#define HH_FIFORunner_ 1
+#ifndef HH_SENF_Scheduler_FIFORunner_
+#define HH_SENF_Scheduler_FIFORunner_ 1
// Custom includes
#include <signal.h>
void taskTimeout(unsigned ms);
unsigned taskTimeout() const;
+ void abortOnTimeout(bool flag);
+ bool abortOnTimeout() const;
- unsigned hangCount() const;
+ void startWatchdog();
+ void stopWatchdog();
+
+ unsigned hangCount();
iterator begin() const;
iterator end() const;
+ void yield();
+
protected:
private:
~FIFORunner();
static void watchdog(int, siginfo_t *, void *);
+ void watchdogError();
TaskList::iterator priorityEnd(TaskInfo::Priority p);
void run(TaskList::iterator f, TaskList::iterator l);
NullTask highPriorityEnd_;
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>;