aboutsummaryrefslogtreecommitdiffstats
path: root/src/chsem.c
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2009-04-12 08:38:51 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2009-04-12 08:38:51 +0000
commit2d1d900b6d11a3f7ef5ff3e0f7f02faa40d8b25f (patch)
tree66d1012f259cee25974f2f72b9851c3ed6b305a8 /src/chsem.c
parent0e27db08794a9ce9205cf45f1b4189d89616ef05 (diff)
downloadChibiOS-2d1d900b6d11a3f7ef5ff3e0f7f02faa40d8b25f.tar.gz
ChibiOS-2d1d900b6d11a3f7ef5ff3e0f7f02faa40d8b25f.tar.bz2
ChibiOS-2d1d900b6d11a3f7ef5ff3e0f7f02faa40d8b25f.zip
Fixed bug 2755170.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@890 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'src/chsem.c')
-rw-r--r--src/chsem.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/chsem.c b/src/chsem.c
index 21f80c284..085f4014b 100644
--- a/src/chsem.c
+++ b/src/chsem.c
@@ -174,8 +174,10 @@ msg_t chSemWaitTimeoutS(Semaphore *sp, systime_t time) {
chDbgCheck(sp != NULL, "chSemWaitTimeoutS");
if (--sp->s_cnt < 0) {
- if (TIME_IMMEDIATE == time)
+ if (TIME_IMMEDIATE == time) {
+ sp->s_cnt++;
return RDY_TIMEOUT;
+ }
sem_insert(currp, &sp->s_queue);
currp->p_wtsemp = sp;
return chSchGoSleepTimeoutS(PRWTSEM, time);