Author: sthibault
Date: 2014-11-02 14:13:22 +0000 (Sun, 02 Nov 2014)
New Revision: 6320

Modified:
   glibc-package/trunk/debian/patches/hurd-i386/cvs-libpthread.diff
Log:
hurd-i386/cvs-libpthread.diff: Update to Sun Nov 2
also fix pthread_barrier_wait safety.


Modified: glibc-package/trunk/debian/patches/hurd-i386/cvs-libpthread.diff
===================================================================
--- glibc-package/trunk/debian/patches/hurd-i386/cvs-libpthread.diff    
2014-11-02 03:24:31 UTC (rev 6319)
+++ glibc-package/trunk/debian/patches/hurd-i386/cvs-libpthread.diff    
2014-11-02 14:13:22 UTC (rev 6320)
@@ -1,5 +1,5 @@
-git snapshot 46d3992fea0690f81ed3924a0a13f3aecde809ae
-Date: Sun Nov 2 04:20:13 2014 +0100
+git snapshot 01a36d151b82f6034c9e8721a5f486ab95254d35
+Date: Sun Nov 2 15:07:29 2014 +0100
 
 ---
  ChangeLog                                     |    6 
@@ -83,7 +83,7 @@
  sysdeps/generic/pt-attr.c                     |   41 +
  sysdeps/generic/pt-barrier-destroy.c          |   27 
  sysdeps/generic/pt-barrier-init.c             |   53 +
- sysdeps/generic/pt-barrier-wait.c             |   61 ++
+ sysdeps/generic/pt-barrier-wait.c             |   69 ++
  sysdeps/generic/pt-barrier.c                  |   26 
  sysdeps/generic/pt-barrierattr-destroy.c      |   27 
  sysdeps/generic/pt-barrierattr-getpshared.c   |   29 
@@ -233,7 +233,7 @@
  tests/test-8.c                                |   60 ++
  tests/test-9.c                                |   88 +++
  tests/test-__pthread_destroy_specific-skip.c  |   83 ++
- 231 files changed, 13243 insertions(+)
+ 231 files changed, 13251 insertions(+)
 diff --exclude .svn --exclude .git --exclude CVS --exclude .hg -urN 
a/libpthread/ChangeLog b/libpthread/ChangeLog
 --- a/libpthread/ChangeLog     1970-01-01 01:00:00.000000000 +0100
 +++ b/libpthread/ChangeLog     2009-10-14 03:39:13.000000000 +0200
@@ -6241,8 +6241,8 @@
 +}
 diff --exclude .svn --exclude .git --exclude CVS --exclude .hg -urN 
a/libpthread/sysdeps/generic/pt-barrier-wait.c 
b/libpthread/sysdeps/generic/pt-barrier-wait.c
 --- a/libpthread/sysdeps/generic/pt-barrier-wait.c     1970-01-01 
01:00:00.000000000 +0100
-+++ b/libpthread/sysdeps/generic/pt-barrier-wait.c     2009-07-11 
11:29:35.000000000 +0200
-@@ -0,0 +1,61 @@
++++ b/libpthread/sysdeps/generic/pt-barrier-wait.c     2014-11-02 
15:01:53.930968585 +0100
+@@ -0,0 +1,69 @@
 +/* pthread_barrier_wait.  Generic version.
 +   Copyright (C) 2002 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -6278,16 +6278,24 @@
 +      if (barrier->count > 1)
 +      {
 +        struct __pthread *wakeup;
++        unsigned n = 0;
 +
-+        wakeup = barrier->queue;
-+        barrier->queue = NULL;
-+        __pthread_spin_unlock (&barrier->lock);
++        __pthread_queue_iterate (barrier->queue, wakeup)
++          n ++;
 +
-+        /* We can safely walk the list of waiting threads without
-+           holding the lock since it is decoupled from the barrier
-+           variable now.  */
-+        __pthread_dequeuing_iterate (wakeup, wakeup)
-+          __pthread_wakeup (wakeup);
++        {
++          struct __pthread *wakeups[n];
++          unsigned i = 0;
++
++          __pthread_dequeuing_iterate (barrier->queue, wakeup)
++            wakeups[i ++] = wakeup;
++
++          barrier->queue = NULL;
++          __pthread_spin_unlock (&barrier->lock);
++
++          for (i = 0; i < n; i ++)
++            __pthread_wakeup (wakeups[i]);
++        }
 +      }
 +
 +      return PTHREAD_BARRIER_SERIAL_THREAD;


-- 
To UNSUBSCRIBE, email to debian-glibc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/e1xkvue-0001z1...@moszumanska.debian.org

Reply via email to