1 #include "fosa_threads_and_signals.h"
2 #include "fosa_clocks_and_timers.h"
5 #include <time.h> // for nanosleep
7 // TODO: use #include <assert.h> when it works for all architectures
8 #include <stdlib.h> // for exit in assert
10 static void inline assert(expression)
13 printe(__FILE__":%u: failed assertion.\n", __LINE__);
20 fosa_clock_id_t clockid = FOSA_CLOCK_REALTIME;
21 fosa_signal_t signal = FOSA_SIGNAL_MAX;
22 fosa_signal_t received;
23 fosa_signal_info_t info, info_received;
24 fosa_timer_id_t timerid;
26 struct timespec timerval;
31 err = fosa_timer_create (clockid, signal, info, &timerid);
32 printf("timer created, err=%d\n", err);
36 timerval.tv_nsec=300000000;
38 err = fosa_timer_arm (timerid, abstime, &timerval);
39 printf("timer armed for 1.3 secs, err=%d\n", err);
42 err = fosa_signal_wait(set,1,&received, &info_received);
43 printf("signal received=%d value=%d (69?), err=%d\n",
44 received,info_received.sival_int,err);
46 err = fosa_signal_wait(set,1,&received, &info_received);
47 printf("signal received=%d value=%d (69?), err=%d\n",
48 received,info_received.sival_int,err);