]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Update. cvs/fedora-glibc-20041006T0900
authorUlrich Drepper <drepper@redhat.com>
Wed, 6 Oct 2004 08:53:46 +0000 (08:53 +0000)
committerUlrich Drepper <drepper@redhat.com>
Wed, 6 Oct 2004 08:53:46 +0000 (08:53 +0000)
2004-10-05  Dwayne Grant McConnell  <dgm69@us.ibm.com>

* pthread.c: Mask restart signal during cancel signal handler.

linuxthreads/ChangeLog
linuxthreads/pthread.c
nptl/ChangeLog
nptl/tst-cancel4.c

index a4a4222f7b799878c51d2b35edafb9b352b589ab..56b412b5c6775e4a6743674f22c95cb49ef98f30 100644 (file)
@@ -1,3 +1,7 @@
+2004-10-05  Dwayne Grant McConnell  <dgm69@us.ibm.com>
+
+       * pthread.c: Mask restart signal during cancel signal handler.
+
 2004-10-05  Jakub Jelinek  <jakub@redhat.com>
 
        * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h (_POSIX_CPUTIME,
index 6c98d7325571e6f61e24f5db8aecd35b3d5a202e..24f0eb02b01e98255abf9023b55fa97f375c8449 100644 (file)
@@ -560,6 +560,7 @@ static void pthread_initialize(void)
   sa.sa_flags = 0;
   __libc_sigaction(__pthread_sig_restart, &sa, NULL);
   sa.sa_handler = pthread_handle_sigcancel;
+  sigaddset(&sa.sa_mask, __pthread_sig_restart);
   // sa.sa_flags = 0;
   __libc_sigaction(__pthread_sig_cancel, &sa, NULL);
   if (__pthread_sig_debug > 0) {
index 0ddc0d0b083f3b2c8a2e40e4f12f7374b642ac16..136cdfcd20043e6a71c5ee4faf65b5bc2275559b 100644 (file)
@@ -1,3 +1,9 @@
+2004-10-06  Ulrich Drepper  <drepper@redhat.com>
+
+       * tst-cancel4.c (tf_msgrcv): Check for failure in msgget.  If the
+       test fails, remove message queue.
+       (tf_msgsnd): Likewise.
+
 2004-10-05  Jakub Jelinek  <jakub@redhat.com>
 
        * tst-clock1.c: Change #ifdef to #if defined.
index 8dc8aec0af0040547394d5ff779c29004d389015..c3e527fd1cd40c9cfd7b503db4657a00055be134 100644 (file)
@@ -1884,6 +1884,11 @@ static void *
 tf_msgrcv (void *arg)
 {
   tempmsg = msgget (IPC_PRIVATE, 0666 | IPC_CREAT);
+  if (tempmsg == -1)
+    {
+      printf ("%s: msgget failed: %s\n", __FUNCTION__, strerror (errno));
+      exit (1);
+    }
 
   int r = pthread_barrier_wait (&b2);
   if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
@@ -1927,6 +1932,8 @@ tf_msgrcv (void *arg)
 
   printf ("%s: msgrcv returned %zd with errno = %m\n", __FUNCTION__, s);
 
+  msgctl (tempmsg, IPC_RMID, NULL);
+
   exit (1);
 }
 
@@ -1940,6 +1947,11 @@ tf_msgsnd (void *arg)
     abort ();
 
   tempmsg = msgget (IPC_PRIVATE, 0666 | IPC_CREAT);
+  if (tempmsg == -1)
+    {
+      printf ("%s: msgget failed: %s\n", __FUNCTION__, strerror (errno));
+      exit (1);
+    }
 
   int r = pthread_barrier_wait (&b2);
   if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
@@ -1972,6 +1984,8 @@ tf_msgsnd (void *arg)
 
   printf ("%s: msgsnd returned\n", __FUNCTION__);
 
+  msgctl (tempmsg, IPC_RMID, NULL);
+
   exit (1);
 }