diff options
| author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2010-08-01 01:05:53 +0200 |
|---|---|---|
| committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2010-08-01 01:05:53 +0200 |
| commit | 68567b88ee8f9e395e0c1f0a565affe8a1d4d68b (patch) | |
| tree | 07d3b7b96832493cb3cc57a26e88157e354cf899 /tests/test-16.c | |
| parent | fa0f7d1afb65bf077edfcc0f8977f95fca5656b9 (diff) | |
Move files to libpthread/ for inclusion along hurd
Diffstat (limited to 'tests/test-16.c')
| -rw-r--r-- | tests/test-16.c | 71 |
1 files changed, 0 insertions, 71 deletions
diff --git a/tests/test-16.c b/tests/test-16.c deleted file mode 100644 index b6a52d01..00000000 --- a/tests/test-16.c +++ /dev/null @@ -1,71 +0,0 @@ -/* Test pthread_kill.c. */ - -#define _GNU_SOURCE - -#include <pthread.h> -#include <signal.h> -#include <stdio.h> -#include <assert.h> -#include <error.h> -#include <errno.h> -#include <hurd/signal.h> - -pthread_t testthread; - -int i; - -void * -test (void *arg) -{ - error_t err; - - printf ("test: %d\n", pthread_self ()); - - err = pthread_kill (pthread_self (), SIGINFO); - if (err) - error (1, err, "pthread_kill"); - - /* To avoid using condition variables in a signal handler. */ - while (i == 0) - sched_yield (); - - return 0; -} - -static void -handler (int sig, siginfo_t *info, void *context) -{ - assert (pthread_equal (pthread_self (), testthread)); - printf ("handler: %d\n", pthread_self ()); - i = 1; -} - -int -main (int argc, char **argv) -{ - error_t err; - struct sigaction sa; - void *ret; - - printf ("main: %d\n", pthread_self ()); - - sa.sa_handler = handler; - sa.sa_mask = 0; - sa.sa_flags = 0; - - err = sigaction (SIGINFO, &sa, 0); - if (err) - error (1, err, "sigaction"); - - err = pthread_create (&testthread, 0, test, 0); - if (err) - error (1, err, "pthread_create"); - - err = pthread_join (testthread, &ret); - if (err) - error (1, err, "pthread_join"); - - assert (ret == 0); - - return 0; -} |
