refactored threading-related classes, code broken

This commit is contained in:
grcasanova
2020-07-05 23:11:40 +02:00
parent 64da384fc1
commit 0a6059ba13
16 changed files with 243 additions and 245 deletions

34
src/concurrency/Thread.h Normal file
View File

@@ -0,0 +1,34 @@
#pragma once
#include "freertosinc.h"
namespace concurrency {
class Thread
{
protected:
TaskHandle_t taskHandle = NULL;
/**
* set this to true to ask thread to cleanly exit asap
*/
volatile bool wantExit = false;
public:
void start(const char *name, size_t stackSize = 1024, uint32_t priority = tskIDLE_PRIORITY);
virtual ~Thread() { vTaskDelete(taskHandle); }
uint32_t getStackHighwaterMark() { return uxTaskGetStackHighWaterMark(taskHandle); }
protected:
/**
* The method that will be called when start is called.
*/
virtual void doRun() = 0;
private:
static void callRun(void *_this);
};
} // namespace concurrency