| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 | /* Test for crashing bugs when trying to create too many timers.  */#include <stdio.h>#include <time.h>#include <signal.h>#include <sys/time.h>#include <sys/resource.h>#include <unistd.h>#if _POSIX_THREADS# include <pthread.h>voidthread (union sigval arg){  puts ("Timeout");}intdo_test (void){  int i, res;  timer_t timerId;  struct itimerspec itval;  struct sigevent sigev;  itval.it_interval.tv_sec = 2;  itval.it_interval.tv_nsec = 0;  itval.it_value.tv_sec = 2;  itval.it_value.tv_nsec = 0;  sigev.sigev_notify = SIGEV_THREAD;  sigev.sigev_signo = SIGRTMIN;  sigev.sigev_notify_function = thread;  sigev.sigev_notify_attributes = 0;  sigev.sigev_value.sival_ptr = (void *) &timerId;  for (i = 0; i < 100; i++)    {      printf ("cnt = %d\n", i);      if (timer_create (CLOCK_REALTIME, &sigev, &timerId) < 0)	{	  perror ("timer_create");	  continue;	}      res = timer_settime (timerId, 0, &itval, NULL);      if (res < 0)	perror ("timer_settime");      res = timer_delete (timerId);      if (res < 0)	perror ("timer_delete");    }  return 0;}# define TEST_FUNCTION do_test ()#else# define TEST_FUNCTION 0#endif#include "../test-skeleton.c"
 |