#include <msp/core/thread.h>
#include "task.h"
+/**
+Runs a worker thread. Tools should derive a thread class from
+InternalTask::Worker. The worker thread must set its status to either SUCCESS
+or ERROR before terminating.
+*/
class InternalTask: public Task
{
public:
friend class InternalTask;
protected:
- Status status;
+ volatile Status status;
Worker();
InternalTask(Worker *);
~InternalTask();
- virtual void start();
- virtual Status check();
+ std::string get_command() const override { return "<internal>"; }
+ void start() override;
+ Status check() override;
+ Status wait() override;
};
#endif