aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorinmarket <andrewh@inmarket.com.au>2014-03-24 10:06:10 +1000
committerinmarket <andrewh@inmarket.com.au>2014-03-24 10:06:10 +1000
commit56b416708c458489bd37314bd94e2a0cbb7e6434 (patch)
treea89894eb08bc741c7a064a582c9acf0f0303ed0b
parent863e5a6b2dc7ea46f64f474084a9f2e42f1c3f7b (diff)
downloaduGFX-56b416708c458489bd37314bd94e2a0cbb7e6434.tar.gz
uGFX-56b416708c458489bd37314bd94e2a0cbb7e6434.tar.bz2
uGFX-56b416708c458489bd37314bd94e2a0cbb7e6434.zip
Fix bug in ChibiOS GOS layer
-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) {