From f4741da2e730191150e4394237716fb29d61845c Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 10 Jul 2002 20:50:46 +0000 Subject: Update. * bug-sleep.c: New file. * Makefile (tests): Add bug-sleep. --- linuxthreads/ChangeLog | 2 ++ linuxthreads/Makefile | 2 +- linuxthreads/bug-sleep.c | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 linuxthreads/bug-sleep.c (limited to 'linuxthreads') diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog index 643013288e..de239845ec 100644 --- a/linuxthreads/ChangeLog +++ b/linuxthreads/ChangeLog @@ -2,6 +2,8 @@ * wrapsyscall.c: Add __nanosleep alias. * Versions (GLIBC_2.2.6): Add __nanosleep. + * bug-sleep.c: New file. + * Makefile (tests): Add bug-sleep. 2002-06-19 Steven Munroe diff --git a/linuxthreads/Makefile b/linuxthreads/Makefile index 41432846c7..a44b9bb834 100644 --- a/linuxthreads/Makefile +++ b/linuxthreads/Makefile @@ -60,7 +60,7 @@ endif librt-tests = ex10 ex11 tests = ex1 ex2 ex3 ex4 ex5 ex6 ex7 ex8 ex9 $(librt-tests) ex12 ex13 joinrace \ tststack $(tests-nodelete-$(have-z-nodelete)) ecmutex ex14 ex15 ex16 \ - ex17 ex18 tst-cancel tst-context + ex17 ex18 tst-cancel tst-context bug-sleep test-srcs = tst-signal ifeq (yes,$(build-shared)) diff --git a/linuxthreads/bug-sleep.c b/linuxthreads/bug-sleep.c new file mode 100644 index 0000000000..f29a6b73c0 --- /dev/null +++ b/linuxthreads/bug-sleep.c @@ -0,0 +1,34 @@ +/* PR libc/4005 */ +#include +#include +#include +#include + +void * +run_thread (void *a) +{ + while (1) + { + sleep (10); + } + return 0; +} + +int +main (void) +{ + pthread_t thr; + void *result; + alarm (4); + printf ("Starting thread.\n"); + pthread_create (&thr, 0, run_thread, 0); + sleep (2); + printf ("Canceling thread.\n"); + pthread_cancel (thr); + pthread_join (thr, &result); + if (result == PTHREAD_CANCELED) + printf ("Thread canceled.\n"); + else + printf ("Thread exited.\n"); + return 0; +} -- cgit v1.2.3