diff --git a/equeue_mbed.cpp b/equeue_mbed.cpp index cf3004d..122910a 100644 --- a/equeue_mbed.cpp +++ b/equeue_mbed.cpp @@ -15,9 +15,11 @@ // Ticker operations static bool equeue_tick_inited = false; -static unsigned equeue_timer[(sizeof(Timer)+1) / sizeof(unsigned)]; -static unsigned equeue_ticker[(sizeof(Ticker)+1) / sizeof(unsigned)]; static unsigned equeue_minutes = 0; +static unsigned equeue_timer[ + (sizeof(Timer)+sizeof(unsigned)-1)/sizeof(unsigned)]; +static unsigned equeue_ticker[ + (sizeof(Ticker)+sizeof(unsigned)-1)/sizeof(unsigned)]; static void equeue_tick_update() { reinterpret_cast(equeue_timer)->reset(); @@ -112,7 +114,7 @@ bool equeue_sema_wait(equeue_sema_t *s, int ms) { core_util_critical_section_enter(); while (!*s) { - __WFI(); + sleep(); core_util_critical_section_exit(); core_util_critical_section_enter(); }