--- 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; |