Added boolean to encode termination requests; added start flag as system flag

This commit is contained in:
dario
2023-10-27 12:43:13 +02:00
parent 87ef535471
commit 067a48c309
2 changed files with 35 additions and 3 deletions

View File

@@ -29,7 +29,16 @@ namespace sta
STA_ASSERT(handle_.get() != nullptr);
STA_ASSERT_MSG(IS_THREAD_SYS_FLAGS(flags), "Only system flags allowed");
osThreadFlagsSet(handle_.get(), flags);
uint32_t rslt = osThreadFlagsSet(handle_.get(), flags);
STA_ASSERT_MSG(rslt != osFlagsErrorUnknown, "Unknown thread flag error.");
STA_ASSERT_MSG(rslt != osFlagsErrorParameter, "Parameter thread_id is not a valid thread or flags has highest bit set.");
STA_ASSERT_MSG(rslt != osFlagsErrorResource, "The thread is in invalid state.");
}
uint32_t RtosThread::wait(uint32_t flags)
{
return osThreadFlagsWait(flags, osFlagsWaitAny, osWaitForever);
}
uint32_t RtosThread::getFlags()
@@ -41,7 +50,16 @@ namespace sta
void RtosThread::requestTermination()
{
sysNotify(STA_RTOS_THREAD_FLAG_TERMINATE);
// sysNotify(STA_RTOS_THREAD_FLAG_TERMINATE);
terminate_ = true;
}
bool RtosThread::checkTerminationRequest()
{
bool temp = terminate_;
terminate_ = false;
return temp;
}
void RtosThread::terminate()