diff options
author | inmarket <andrewh@inmarket.com.au> | 2014-03-24 10:06:10 +1000 |
---|---|---|
committer | inmarket <andrewh@inmarket.com.au> | 2014-03-24 10:06:10 +1000 |
commit | 56b416708c458489bd37314bd94e2a0cbb7e6434 (patch) | |
tree | a89894eb08bc741c7a064a582c9acf0f0303ed0b /src | |
parent | 863e5a6b2dc7ea46f64f474084a9f2e42f1c3f7b (diff) | |
download | uGFX-56b416708c458489bd37314bd94e2a0cbb7e6434.tar.gz uGFX-56b416708c458489bd37314bd94e2a0cbb7e6434.tar.bz2 uGFX-56b416708c458489bd37314bd94e2a0cbb7e6434.zip |
Fix bug in ChibiOS GOS layer
Diffstat (limited to 'src')
-rw-r--r-- | src/gos/chibios.c | 9 |
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) { |