aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gos/chibios.c9
1 files 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) {