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) {