aboutsummaryrefslogtreecommitdiffstats
path: root/os
diff options
context:
space:
mode:
authorGiovanni Di Sirio <gdisirio@gmail.com>2016-03-11 15:39:22 +0000
committerGiovanni Di Sirio <gdisirio@gmail.com>2016-03-11 15:39:22 +0000
commitd6dd34c381e8e7631cb04032f01d83ff272afdcc (patch)
tree227fdba7ede3fa1faa415dff56706037b056b372 /os
parent8f30e605e6611b5d5c61c24d5d0cfb17589f117d (diff)
downloadChibiOS-d6dd34c381e8e7631cb04032f01d83ff272afdcc.tar.gz
ChibiOS-d6dd34c381e8e7631cb04032f01d83ff272afdcc.tar.bz2
ChibiOS-d6dd34c381e8e7631cb04032f01d83ff272afdcc.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@9076 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os')
-rw-r--r--os/common/abstractions/nasa_osal/src/osapi.c7
1 files changed, 5 insertions, 2 deletions
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);