Example #1
0
void worker_loop_start(void (*test_step_cb_fnc)(void), int timeout)
{
    int test_step_cb_timer = worker_loop_event_queue.call_every(timeout, test_step_cb_fnc);
    int timeout_outgoing_msg_timer = worker_loop_event_queue.call_every(1000, emac_if_timeout_outgoing_msg);

#if MBED_CONF_APP_ECHO_SERVER
    worker_loop_event_queue.dispatch_forever();
#else
    worker_loop_event_queue.dispatch(600 * SECOND_TO_MS);
#endif

    worker_loop_event_queue.cancel(test_step_cb_timer);
    worker_loop_event_queue.cancel(timeout_outgoing_msg_timer);

    worker_loop_event_queue.dispatch(5);
}
Example #2
0
void call_every_test() {
    Timer tickers[N];

    EventQueue queue;

    for (int i = 0; i < N; i++) {
        tickers[i].start();
        queue.call_every((i+1)*100, time_func, &tickers[i], (i+1)*100);
    }

    queue.dispatch(N*100);
}
Example #3
0
int main() {
    // creates a queue with the default size
    EventQueue queue;

    // events are simple callbacks
    queue.call(printf, "called immediately\n");
    queue.call_in(2000, printf, "called in 2 seconds\n");
    queue.call_every(1000, printf, "called every 1 seconds\n");

    // events are executed by the dispatch method
    queue.dispatch();
}