aboutsummaryrefslogtreecommitdiff
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.zip
glibc-ad71126b24491c31fd99b4ca8010cd1363f1c016.tar.gz
glibc-ad71126b24491c31fd99b4ca8010cd1363f1c016.tar.bz2
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 d38b8a7..b4c5174 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 f5c99ee..a3ab909 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 82a877c..c72b2ac 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];