79 { |
79 { |
80 pthread_kill(*Thread, SIGTERM); |
80 pthread_kill(*Thread, SIGTERM); |
81 pthread_join(*Thread, NULL); |
81 pthread_join(*Thread, NULL); |
82 } |
82 } |
83 |
83 |
84 #define max(a,b) a>b?a:b |
84 #define maxval(a,b) a>b?a:b |
85 void setTimer(TIMEVAL value) |
85 void setTimer(TIMEVAL value) |
86 { |
86 { |
87 // printf("setTimer(TIMEVAL value=%d)\n", value); |
87 // printf("setTimer(TIMEVAL value=%d)\n", value); |
88 // TIMEVAL is us whereas setitimer wants ns... |
88 // TIMEVAL is us whereas setitimer wants ns... |
89 long tv_nsec = 1000 * (max(value,1)%1000000); |
89 long tv_nsec = 1000 * (maxval(value,1)%1000000); |
90 time_t tv_sec = value/1000000; |
90 time_t tv_sec = value/1000000; |
91 struct itimerspec timerValues; |
91 struct itimerspec timerValues; |
92 timerValues.it_value.tv_sec = tv_sec; |
92 timerValues.it_value.tv_sec = tv_sec; |
93 timerValues.it_value.tv_nsec = tv_nsec; |
93 timerValues.it_value.tv_nsec = tv_nsec; |
94 timerValues.it_interval.tv_sec = 0; |
94 timerValues.it_interval.tv_sec = 0; |