summary refs log tree commit diff
path: root/linuxthreads
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2001-07-31 20:32:01 +0000
committerUlrich Drepper <drepper@redhat.com>2001-07-31 20:32:01 +0000
commitad71126b24491c31fd99b4ca8010cd1363f1c016 (patch)
treeb788d320c7c35e7b1eaca2e18973d55b3a5b2242 /linuxthreads
parent34183f57d75b4e8b9ed6608f888f0f1e1ada8b34 (diff)
downloadglibc-ad71126b24491c31fd99b4ca8010cd1363f1c016.tar.gz
glibc-ad71126b24491c31fd99b4ca8010cd1363f1c016.tar.xz
glibc-ad71126b24491c31fd99b4ca8010cd1363f1c016.zip
Update.
	* sysdeps/unix/sysv/linux/cmsg_nxthdr.c (__cmsg_nxthdr): Correct
	test for cmsg struct size.
	* sysdeps/unix/sysv/linux/bits/socket.h (__cmsg_nxthdr): Likewise.

	* sysdeps/unix/sysv/linux/i386/makecontext.S: Remove unnecessary
	initializations.

	* libio/oldiopopen.c: Add lock for old_proc_file_chain access.
Diffstat (limited to 'linuxthreads')
-rw-r--r--linuxthreads/ChangeLog4
-rw-r--r--linuxthreads/Examples/ex17.c17
-rw-r--r--linuxthreads/tst-context.c6
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];