4 ** Made by (Miguel marciano)
5 ** Login <miguel@namir.ctr.unican.es>
7 ** Started on Thu Nov 8 16:22:18 2007 Miguel marciano
8 ** Last update Sun May 12 01:17:25 2002 Speed Blue
17 #define TEST_SIGNAL (SIGRTMIN + 6)
23 fosa_abs_time_t past_time;
24 fosa_abs_time_t current_time;
25 fosa_timer_id_t timer;
27 fosa_signal_t signal_set[1];
28 fosa_signal_info_t signal_info;
29 fosa_signal_t signal_received;
31 int my_test_value = 42;
32 fosa_rel_time_t eat_time = fosa_msec_to_rel_time(2000);
36 /* We block the signals that we are going to process */
37 /*****************************************************/
38 signal_set[0] = TEST_SIGNAL;
39 terror = fosa_set_accepted_signals(signal_set, 1);
40 if (terror != 0) exit(1);
44 /* We create a timer based on the FOSA_CLOCK_REALTIME */
45 /******************************************************/
46 signal_info.sival_int = my_test_value;
47 terror = fosa_timer_create(FOSA_CLOCK_REALTIME, TEST_SIGNAL, signal_info, &timer);
48 if (terror != 0) exit(1);
50 /* I get the time BEFORE doing the eat */
51 /***************************************/
52 terror = fosa_clock_get_time(FOSA_CLOCK_REALTIME, &past_time);
53 if (terror != 0) exit(1);
54 printf("Current time: %ld msec\n", fosa_abs_time_to_msec(past_time) );
56 /* Now I do some work for some secs */
57 /************************************/
60 /* I read the time again */
61 /*************************/
62 terror = fosa_clock_get_time(FOSA_CLOCK_REALTIME, ¤t_time);
63 if (terror != 0) exit(1);
64 printf("Current time: %ld msec\n", fosa_abs_time_to_msec(current_time) );
66 /* I arm the timer to the past */
67 /* Since we have blocked this signal, the signal should be stored */
68 /******************************************************************/
69 printf("Arming the timer\n");
70 terror = fosa_abs_timer_arm(timer, &past_time);
73 /* Now I do the sigwait */
74 /************************/
75 printf("Waiting for the signal\n");
76 terror = fosa_signal_wait(signal_set, 1, &signal_received, &signal_info);
77 if (terror != 0) exit(1);
79 printf("Signal accepted!!!\n");