diff --git a/equeue/equeue_mbed.cpp b/equeue/equeue_mbed.cpp index 122910a..af1f49d 100644 --- a/equeue/equeue_mbed.cpp +++ b/equeue/equeue_mbed.cpp @@ -110,7 +110,9 @@ static void equeue_sema_timeout(equeue_sema_t *s) { bool equeue_sema_wait(equeue_sema_t *s, int ms) { int signal = 0; Timeout timeout; - timeout.attach_us(s, equeue_sema_timeout, ms*1000); + if (ms < 0) { + timeout.attach_us(Callback(equeue_sema_timeout, s), ms*1000); + } core_util_critical_section_enter(); while (!*s) {