Fixed thread starting to work correctly

This commit is contained in:
dario 2024-02-07 17:04:19 +01:00
parent d06a15e986
commit 2617521444
2 changed files with 26 additions and 2 deletions

View File

@ -89,6 +89,8 @@ namespace sta
void loop() override; void loop() override;
void start() override;
/** /**
* @brief This function is executed first when this thread is started. * @brief This function is executed first when this thread is started.
*/ */
@ -149,6 +151,8 @@ namespace sta
* *
*/ */
void resetStatus(); void resetStatus();
void watchdogIgnore();
#endif // STA_TACOS_WATCHDOG_ENABLED #endif // STA_TACOS_WATCHDOG_ENABLED
/** /**

View File

@ -33,6 +33,18 @@ namespace sta
return running_; return running_;
} }
void TacosThread::start()
{
if (getInstance() == NULL)
{
RtosThread::start();
}
else
{
sysNotify(STA_RTOS_THREAD_FLAG_START);
}
}
void TacosThread::init() {} void TacosThread::init() {}
void TacosThread::loop() void TacosThread::loop()
@ -54,8 +66,11 @@ namespace sta
while (!isTerminationRequested()) while (!isTerminationRequested())
{ {
#ifdef STA_TACOS_WATCHDOG_ENABLED #ifdef STA_TACOS_WATCHDOG_ENABLED
// Send a fresh heartbeat signal. if (status_ == ThreadStatus::UNKNOWN)
heartbeat(); {
// Send a fresh heartbeat signal.
heartbeat();
}
#endif // STA_TACOS_WATCHDOG_ENABLED #endif // STA_TACOS_WATCHDOG_ENABLED
// Execute user-space implementation. // Execute user-space implementation.
@ -111,6 +126,11 @@ namespace sta
{ {
status_ = ThreadStatus::UNKNOWN; status_ = ThreadStatus::UNKNOWN;
} }
void TacosThread::watchdogIgnore()
{
status_ = ThreadStatus::IGNORED;
}
#endif // STA_TACOS_WATCHDOG_ENABLED #endif // STA_TACOS_WATCHDOG_ENABLED
void TacosThread::requestTermination() void TacosThread::requestTermination()