From d6dd34c381e8e7631cb04032f01d83ff272afdcc Mon Sep 17 00:00:00 2001 From: Giovanni Di Sirio Date: Fri, 11 Mar 2016 15:39:22 +0000 Subject: git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@9076 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/common/abstractions/nasa_osal/src/osapi.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'os/common') diff --git a/os/common/abstractions/nasa_osal/src/osapi.c b/os/common/abstractions/nasa_osal/src/osapi.c index bd6448d2a..6794e4cf4 100644 --- a/os/common/abstractions/nasa_osal/src/osapi.c +++ b/os/common/abstractions/nasa_osal/src/osapi.c @@ -1031,7 +1031,7 @@ int32 OS_BinSemCreate(uint32 *sem_id, const char *sem_name, } /* Semaphore is initialized.*/ - chBSemObjectInit(bsp, sem_initial_value == 0 ? false : true); + chBSemObjectInit(bsp, sem_initial_value == 0 ? true : false); *sem_id = (uint32)bsp; @@ -1102,7 +1102,10 @@ int32 OS_BinSemFlush(uint32 sem_id) { return OS_SEM_FAILURE; } - chBSemResetI(bsp, true); + /* If the semaphore state is "not taken" then it is not touched.*/ + if (bsp->sem.cnt < 0) { + chBSemResetI(bsp, true); + } /* Leaving the critical zone.*/ chSysRestoreStatusX(sts); -- cgit v1.2.3