diff options
Diffstat (limited to 'linuxthreads')
-rw-r--r-- | linuxthreads/ChangeLog | 4 | ||||
-rw-r--r-- | linuxthreads/Examples/ex17.c | 17 | ||||
-rw-r--r-- | linuxthreads/tst-context.c | 6 |
3 files changed, 27 insertions, 0 deletions
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog index d38b8a7cf9..b4c51749ef 100644 --- a/linuxthreads/ChangeLog +++ b/linuxthreads/ChangeLog @@ -1,3 +1,7 @@ +2001-07-31 Ulrich Drepper <drepper@redhat.com> + + * Examples/ex17.c: Make sure test thread is around long enough. + 2001-07-26 kaz Kojima <kkojima@rr.iij4u.or.jp> * sysdeps/sh/pt-machine.h (THREAD_SELF, INIT_THREAD_SELF): Defined. diff --git a/linuxthreads/Examples/ex17.c b/linuxthreads/Examples/ex17.c index f5c99ee3fb..a3ab909990 100644 --- a/linuxthreads/Examples/ex17.c +++ b/linuxthreads/Examples/ex17.c @@ -6,9 +6,12 @@ #include <limits.h> #include <sys/mman.h> +static pthread_mutex_t synch = PTHREAD_MUTEX_INITIALIZER; + static void * test_thread (void *v_param) { + pthread_mutex_lock (&synch); return NULL; } @@ -56,6 +59,13 @@ main (void) return 2; } + status = pthread_mutex_lock (&synch); + if (status != 0) + { + printf ("cannot get lock: %s\n", strerror (status)); + return 1; + } + status = pthread_create (&thread, &attr, test_thread, NULL); if (status != 0) { @@ -85,6 +95,13 @@ main (void) return 3; } + status = pthread_mutex_unlock (&synch); + if (status != 0) + { + printf ("cannot release lock: %s\n", strerror (status)); + return 1; + } + /* pthread_detach (thread); */ if (pthread_join (thread, NULL) != 0) { diff --git a/linuxthreads/tst-context.c b/linuxthreads/tst-context.c index 82a877cffe..c72b2ac101 100644 --- a/linuxthreads/tst-context.c +++ b/linuxthreads/tst-context.c @@ -28,6 +28,12 @@ threadfct (void *arg) { int n = (int) (long int) arg; + if (getcontext (&ctx[n][1]) != 0) + { + printf ("%d: cannot get context: %m\n", n); + exit (1); + } + printf ("%d: %s: before makecontext\n", n, __FUNCTION__); ctx[n][1].uc_stack.ss_sp = stacks[n]; |