r6319 - glibc-package/trunk/debian/patches/hurd-i386
Author: sthibault
Date: 2014-11-02 03:24:31 +0000 (Sun, 02 Nov 2014)
New Revision: 6319
Modified:
glibc-package/trunk/debian/patches/hurd-i386/cvs-libpthread.diff
Log:
hurd-i386/cvs-libpthread.diff: Update to Sun Nov 2
also fix rwlock_unlock performance.
Modified: glibc-package/trunk/debian/patches/hurd-i386/cvs-libpthread.diff
===================================================================
--- glibc-package/trunk/debian/patches/hurd-i386/cvs-libpthread.diff 2014-11-02 01:54:59 UTC (rev 6318)
+++ glibc-package/trunk/debian/patches/hurd-i386/cvs-libpthread.diff 2014-11-02 03:24:31 UTC (rev 6319)
@@ -1,5 +1,5 @@
-git snapshot 3360034b7814d90503098700fc18bf07c47838c3
-Date: Sun Nov 2 02:32:07 2014 +0100
+git snapshot 46d3992fea0690f81ed3924a0a13f3aecde809ae
+Date: Sun Nov 2 04:20:13 2014 +0100
---
ChangeLog | 6
@@ -142,7 +142,7 @@
sysdeps/generic/pt-rwlock-timedwrlock.c | 103 +++
sysdeps/generic/pt-rwlock-tryrdlock.c | 56 +
sysdeps/generic/pt-rwlock-trywrlock.c | 46 +
- sysdeps/generic/pt-rwlock-unlock.c | 87 ++
+ sysdeps/generic/pt-rwlock-unlock.c | 98 +++
sysdeps/generic/pt-rwlock-wrlock.c | 34 +
sysdeps/generic/pt-rwlockattr-destroy.c | 27
sysdeps/generic/pt-rwlockattr-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, 13232 insertions(+)
+ 231 files changed, 13243 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
@@ -9127,8 +9127,8 @@
+}
diff --exclude .svn --exclude .git --exclude CVS --exclude .hg -urN a/libpthread/sysdeps/generic/pt-rwlock-unlock.c b/libpthread/sysdeps/generic/pt-rwlock-unlock.c
--- a/libpthread/sysdeps/generic/pt-rwlock-unlock.c 1970-01-01 01:00:00.000000000 +0100
-+++ b/libpthread/sysdeps/generic/pt-rwlock-unlock.c 2013-02-10 10:49:14.693444779 +0100
-@@ -0,0 +1,87 @@
++++ b/libpthread/sysdeps/generic/pt-rwlock-unlock.c 2014-11-02 04:19:54.541667466 +0100
+@@ -0,0 +1,98 @@
+/* Unlock a rwlock. Generic version.
+ Copyright (C) 2000,02 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
@@ -9196,16 +9196,27 @@
+
+ if (rwlock->readerqueue)
+ {
-+ __pthread_dequeuing_iterate (rwlock->readerqueue, wakeup)
-+ {
-+ rwlock->readers ++;
-+ __pthread_wakeup (wakeup);
-+ }
++ unsigned n = 0;
+
-+ rwlock->readerqueue = 0;
++ __pthread_queue_iterate (rwlock->readerqueue, wakeup)
++ n ++;
+
-+ __pthread_spin_unlock (&rwlock->__lock);
++ {
++ struct __pthread *wakeups[n];
++ unsigned i = 0;
+
++ __pthread_dequeuing_iterate (rwlock->readerqueue, wakeup)
++ wakeups[i ++] = wakeup;
++
++ rwlock->readers += n;
++ rwlock->readerqueue = 0;
++
++ __pthread_spin_unlock (&rwlock->__lock);
++
++ for (i = 0; i < n; i ++)
++ __pthread_wakeup (wakeups[i]);
++ }
++
+ return 0;
+ }
+
Reply to: