diff options
Diffstat (limited to 'test/nptl/tst-timer3.c')
-rw-r--r-- | test/nptl/tst-timer3.c | 86 |
1 files changed, 0 insertions, 86 deletions
diff --git a/test/nptl/tst-timer3.c b/test/nptl/tst-timer3.c deleted file mode 100644 index 8113f6690..000000000 --- a/test/nptl/tst-timer3.c +++ /dev/null @@ -1,86 +0,0 @@ -/* Test for bogus per-thread deletion of timers. */ - -#include <stdio.h> -#include <error.h> -#include <time.h> -#include <signal.h> -#include <stdint.h> -#include <string.h> -#include <sys/time.h> -#include <sys/resource.h> -#include <unistd.h> -#if _POSIX_THREADS -# include <pthread.h> - - -/* Creating timers in another thread should work too. */ -static void * -do_timer_create (void *arg) -{ - struct sigevent *const sigev = arg; - timer_t *const timerId = sigev->sigev_value.sival_ptr; - if (timer_create (CLOCK_REALTIME, sigev, timerId) < 0) - { - printf ("timer_create: %m\n"); - return NULL; - } - return timerId; -} - - -static int -do_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_SIGNAL; - sigev.sigev_signo = SIGALRM; - sigev.sigev_value.sival_ptr = (void *) &timerId; - - for (i = 0; i < 100; i++) - { - printf ("cnt = %d\n", i); - - pthread_t thr; - res = pthread_create (&thr, NULL, &do_timer_create, &sigev); - if (res) - { - printf ("pthread_create: %s\n", strerror (res)); - continue; - } - void *val; - res = pthread_join (thr, &val); - if (res) - { - printf ("pthread_join: %s\n", strerror (res)); - continue; - } - if (val == NULL) - continue; - - res = timer_settime (timerId, 0, &itval, NULL); - if (res < 0) - printf ("timer_settime: %m\n"); - - res = timer_delete (timerId); - if (res < 0) - printf ("timer_delete: %m\n"); - } - - return 0; -} - -# define TEST_FUNCTION do_test () -#else -# define TEST_FUNCTION 0 -#endif - -#include "../test-skeleton.c" |