summaryrefslogtreecommitdiff
path: root/ChangeLog
diff options
context:
space:
mode:
authorTorvald Riegel <triegel@redhat.com>2015-06-24 14:37:32 +0200
committerTorvald Riegel <triegel@redhat.com>2016-01-15 21:20:34 +0100
commitb02840bacdefde318d2ad2f920e50785b9b25d69 (patch)
treedcf8ee01d1e4bdb42686d890c1d00bf3249fbcaf /ChangeLog
parenta3e5b4feeb54cb92657ec2bc6d9be1fcef9e8575 (diff)
New pthread_barrier algorithm to fulfill barrier destruction requirements.
The previous barrier implementation did not fulfill the POSIX requirements for when a barrier can be destroyed. Specifically, it was possible that threads that haven't noticed yet that their round is complete still access the barrier's memory, and that those accesses can happen after the barrier has been legally destroyed. The new algorithm does not have this issue, and it avoids using a lock internally.
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog27
1 files changed, 27 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index fb5cd0e024..53413adee4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,30 @@
+2016-01-15 Torvald Riegel <triegel@redhat.com>
+
+ [BZ #13065]
+ * nptl/pthread_barrier_wait.c (__pthread_barrier_wait): Replace with
+ new implementation.
+ * nptl/pthread_barrier_destroy.c (pthread_barrier_destroy): Likewise.
+ * nptl/pthread_barrier_init.c (__pthread_barrier_init): Adapt.
+ * sysdeps/nptl/internaltypes.h (pthread_barrier): Adapt.
+ (BARRIER_IN_THRESHOLD): New macro.
+ * nptl/pthread_barrierattr_setpshared.c
+ (pthread_barrierattr_setpshared): Clean up.
+ * nptl/tst-barrier4.c: Correct comment.
+ * nptl/tst-barrier5.c: New file.
+ * nptl/Makefile (tests): Add nptl/tst-barrier5.c.
+ (gen-as-const-headers): Remove lowlevelbarrier.sym.
+ * sysdeps/unix/sysv/linux/i386/pthread_barrier_wait.S: Remove.
+ * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Remove.
+ * nptl/lowlevelbarrier.sym: Remove.
+ * nptl/DESIGN-barrier.txt: Remove.
+ * sysdeps/sparc/nptl/pthread_barrier_destroy.c: Remove.
+ * sysdeps/sparc/nptl/pthread_barrier_init.c: Remove.
+ * sysdeps/sparc/nptl/pthread_barrier_wait.c: Remove.
+ * sysdeps/sparc/sparc32/pthread_barrier_wait.c: Replace with build
+ error.
+ * sysdeps/sparc/sparc32/sparcv9/pthread_barrier_wait.c: Use generic
+ implementation.
+
2016-01-15 Paul E. Murphy <murphyp@linux.vnet.ibm.com>
* rt/tst-mqueue5.c (thr): Cleanup misleading comment.