blob: 2221c979f07b727096f2579f6a19209e455cb427 [file] [log] [blame]
--- a/fsl_os_abstraction_free_rtos.c
+++ b/fsl_os_abstraction_free_rtos.c
@@ -344,6 +344,12 @@ osaStatus_t OSA_SemaphoreWait(osaSemaphoreId_t semId, uint32_t millisec)
{
#if osNumberOfSemaphores
uint32_t timeoutTicks;
+
+ if (xTaskGetSchedulerState() == taskSCHEDULER_SUSPENDED)
+ {
+ return osaStatus_Success;
+ }
+
if(semId == NULL)
{
return osaStatus_Error;
@@ -388,6 +394,12 @@ osaStatus_t OSA_SemaphorePost(osaSemaphoreId_t semId)
{
#if osNumberOfSemaphores
osaStatus_t status = osaStatus_Error;
+
+ if (xTaskGetSchedulerState() == taskSCHEDULER_SUSPENDED)
+ {
+ return osaStatus_Success;
+ }
+
if(semId)
{
semaphore_t sem = (semaphore_t)semId;
@@ -461,6 +473,12 @@ osaStatus_t OSA_MutexLock(osaMutexId_t mutexId, uint32_t millisec)
#if osNumberOfMutexes
uint32_t timeoutTicks;
mutex_t mutex = (mutex_t)mutexId;
+
+ if (xTaskGetSchedulerState() == taskSCHEDULER_SUSPENDED)
+ {
+ return osaStatus_Success;
+ }
+
if(mutexId == NULL)
{
return osaStatus_Error;
@@ -506,6 +524,12 @@ osaStatus_t OSA_MutexUnlock(osaMutexId_t mutexId)
{
#if osNumberOfMutexes
mutex_t mutex = (mutex_t)mutexId;
+
+ if (xTaskGetSchedulerState() == taskSCHEDULER_SUSPENDED)
+ {
+ return osaStatus_Success;
+ }
+
if(mutexId == NULL)
{
return osaStatus_Error;