From 56b416708c458489bd37314bd94e2a0cbb7e6434 Mon Sep 17 00:00:00 2001 From: inmarket Date: Mon, 24 Mar 2014 10:06:10 +1000 Subject: [PATCH] Fix bug in ChibiOS GOS layer --- src/gos/chibios.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/gos/chibios.c b/src/gos/chibios.c index 7d64fe1c..67f70561 100644 --- a/src/gos/chibios.c +++ b/src/gos/chibios.c @@ -81,12 +81,11 @@ void gfxSemDestroy(gfxSem *psem) { } bool_t gfxSemWait(gfxSem *psem, delaytime_t ms) { - if (ms == TIME_INFINITE) { - chSemWait(&psem->sem); - return TRUE; + switch(ms) { + case TIME_IMMEDIATE: return chSemWaitTimeout(&psem->sem, TIME_IMMEDIATE) != RDY_TIMEOUT; + case TIME_INFINITE: chSemWait(&psem->sem); return TRUE; + default: return chSemWaitTimeout(&psem->sem, MS2ST(ms)) != RDY_TIMEOUT; } - - return chSemWaitTimeout(&psem->sem, MS2ST(ms)) != RDY_TIMEOUT; } bool_t gfxSemWaitI(gfxSem *psem) {