Added working blocking-wrapper

This commit is contained in:
dario 2024-01-03 15:17:38 +01:00
parent 14142d5b62
commit cc74b9edd4
3 changed files with 12 additions and 5 deletions

View File

@ -137,7 +137,14 @@ namespace sta
virtual void cleanup();
#ifdef STA_TACOS_WATCHDOG_ENABLED
#define BLOCKING(stmt) waiting(); stmt heartbeat()
/**
* @brief This macro wraps a given statement into waiting() and heartbeat() to make the code more readable.
*
*/
#define blocking(...) \
waiting(); \
__VA_ARGS__ \
heartbeat(); \
protected:
/**

View File

@ -25,7 +25,7 @@ namespace sta
attribs_{ .name=name, .cb_size=cb_size, .stack_size=stack_size, .priority=prio },
running_{false},
#ifdef STA_TACOS_WATCHDOG_ENABLED
status_{ThreadStatus::STOPPED}
, status_{ThreadStatus::STOPPED}
#endif // STA_TACOS_WATCHDOG_ENABLED
{
STA_ASSERT(stack_size >= 0);
@ -36,9 +36,9 @@ namespace sta
: RtosThread(RtosHandle<osThreadId_t>(Handle::Deferred(&instance_))),
instance_{ NULL },
attribs_{ },
running_{false},
running_{false}
#ifdef STA_TACOS_WATCHDOG_ENABLED
status_{ThreadStatus::STOPPED}
, status_{ThreadStatus::STOPPED}
#endif // STA_TACOS_WATCHDOG_ENABLED
{}