static void evt3_execute(void) { eventmask_t m; /* * Tests various timeout situations. */ m = chEvtWaitOneTimeout(ALL_EVENTS, TIME_IMMEDIATE); test_assert(1, m == 0, "spurious event"); m = chEvtWaitAnyTimeout(ALL_EVENTS, TIME_IMMEDIATE); test_assert(2, m == 0, "spurious event"); m = chEvtWaitAllTimeout(ALL_EVENTS, TIME_IMMEDIATE); test_assert(3, m == 0, "spurious event"); m = chEvtWaitOneTimeout(ALL_EVENTS, 10); test_assert(4, m == 0, "spurious event"); m = chEvtWaitAnyTimeout(ALL_EVENTS, 10); test_assert(5, m == 0, "spurious event"); m = chEvtWaitAllTimeout(ALL_EVENTS, 10); test_assert(6, m == 0, "spurious event"); }
/** * @brief Wait for signals. */ osEvent osSignalWait(int32_t signals, uint32_t millisec) { osEvent event; if (signals == 0) event.value.signals = (uint32_t)chEvtWaitAnyTimeout((eventmask_t)signals, (systime_t)millisec); else event.value.signals = (uint32_t)chEvtWaitAllTimeout((eventmask_t)signals, (systime_t)millisec); /* Type of event.*/ if (event.value.signals == 0) event.status = osEventTimeout; else event.status = osEventSignal; return event; }
/** * @brief Wait for signals. */ osEvent osSignalWait(int32_t signals, uint32_t millisec) { osEvent event; systime_t timeout = ((millisec == 0) || (millisec == osWaitForever)) ? TIME_INFINITE : MS2ST(millisec); if (signals == 0) event.value.signals = (uint32_t)chEvtWaitAnyTimeout(ALL_EVENTS, timeout); else event.value.signals = (uint32_t)chEvtWaitAllTimeout((eventmask_t)signals, timeout); /* Type of event.*/ if (event.value.signals == 0) event.status = osEventTimeout; else event.status = osEventSignal; return event; }
eventmask_t BaseThread::waitAllEventsTimeout(eventmask_t ewmask, systime_t time) { return chEvtWaitAllTimeout(ewmask, time); }
eventmask_t Event::WaitAllTimeout(eventmask_t ewmask, systime_t time) { return chEvtWaitAllTimeout(ewmask, time); }