#include #include #include #include #define TIMERS 40 int main() { sigevent_t event; memset(&event, 0, sizeof(event)); timer_t timerid[TIMERS]; memset(timerid, 0, sizeof(timerid)); struct itimerspec value; memset(&value, 0, sizeof(value)); int i = 0; for (i = 0; i < TIMERS; i++) { event.sigev_notify = SIGEV_NONE; int rc = timer_create(CLOCK_REALTIME, &event, &timerid[i]); if (0 != rc) { printf("Couldn't create timer %d\n", i); return 1; } } for (i = 0; i < TIMERS; i++) { value.it_value.tv_nsec = 320000000; // 320 [ms] int rc = timer_settime(timerid[i], 0, &value, NULL); if (0 != rc) { printf("Couldn't set timer %d\n", i); return 1; } } sleep(1); // give all the timers a chance to fire for (i = 0; i < TIMERS; i++) { printf("Destroying timer %d...", i); fflush(stdout); int rc = timer_delete(timerid[i]); printf("Done\n"); if (0 != rc) { printf("Couldn't delete timer %d\n", i); return 1; } } return 0; }