]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
drd: Improve barrier support
authorBart Van Assche <bvanassche@acm.org>
Sat, 24 Dec 2022 22:43:40 +0000 (14:43 -0800)
committerBart Van Assche <bvanassche@acm.org>
Sat, 24 Dec 2022 23:32:15 +0000 (15:32 -0800)
Make test drd/tests/pth_barrier_thr_cr pass on Fedora 38.

NEWS
drd/drd_barrier.c

diff --git a/NEWS b/NEWS
index 4dd33a364edb9566381af6d7222acb8f03bb5d18..e1befb56f5769f49dad6e636351b3ff9024ac934 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -26,6 +26,7 @@ are not entered into bugzilla tend to get forgotten about or ignored.
 351857  confusing error message about valid command line option
 444110  priv/guest_ppc_toIR.c:36198:31: warning: duplicated 'if' condition.
 444488  Use glibc.pthread.stack_cache_size tunable
+444568  drd/tests/pth_barrier_thr_cr fails on Fedora 38
 459476  vgdb: allow address reuse to avoid "address already in use" errorsuse" errors
 462830  WARNING: unhandled amd64-freebsd syscall: 474
 463027  broken check for MPX instruction support in assembler
index 46028372442a5d5d490762687b2c603f4129f95a..0d6d2136ae67ffe36493307a6f6a9f1a38f6cb7c 100644 (file)
@@ -431,25 +431,6 @@ void DRD_(barrier_post_wait)(const DrdThreadId tid, const Addr barrier,
 
    oset = p->oset[p->post_iteration & 1];
    q = VG_(OSetGen_Lookup)(oset, &word_tid);
-   if (p->pre_iteration - p->post_iteration > 1) {
-      BarrierErrInfo bei = { DRD_(thread_get_running_tid)(), p->a1, 0, 0 };
-      VG_(maybe_record_error)(VG_(get_running_tid)(),
-                              BarrierErr,
-                              VG_(get_IP)(VG_(get_running_tid)()),
-                              "Number of concurrent pthread_barrier_wait()"
-                              " calls exceeds the barrier count",
-                              &bei);
-   } else if (q == NULL) {
-      BarrierErrInfo bei = { DRD_(thread_get_running_tid)(), p->a1, 0, 0 };
-      VG_(maybe_record_error)(VG_(get_running_tid)(),
-                              BarrierErr,
-                              VG_(get_IP)(VG_(get_running_tid)()),
-                              "Error in barrier implementation"
-                              " -- barrier_wait() started before"
-                              " barrier_destroy() and finished after"
-                              " barrier_destroy()",
-                              &bei);
-   }
    if (q == NULL) {
       q = VG_(OSetGen_AllocNode)(oset, sizeof(*q));
       DRD_(barrier_thread_initialize)(q, tid);