This repository was archived by the owner on Aug 13, 2025. It is now read-only.
File tree Expand file tree Collapse file tree 2 files changed +11
-3
lines changed Expand file tree Collapse file tree 2 files changed +11
-3
lines changed Original file line number Diff line number Diff line change @@ -3,5 +3,5 @@ called_from_lib:libfstrm.so
3
3
called_from_lib:libdummyrpz.so
4
4
# be more selective with liburcu
5
5
race:rcu_barrier
6
- race:rcu_memb_barrier
6
+ race:rcu_*_barrier
7
7
thread:*
Original file line number Diff line number Diff line change @@ -1431,14 +1431,22 @@ static void
1431
1431
qpmulti_destroy_cb (struct rcu_head * arg ) {
1432
1432
qp_rcuctx_t * rcuctx = isc_urcu_container (arg , qp_rcuctx_t , rcu_head );
1433
1433
REQUIRE (QPRCU_VALID (rcuctx ));
1434
+ /* only nonzero for reclaim_chunks_cb() */
1435
+ REQUIRE (rcuctx -> count == 0 );
1436
+
1434
1437
dns_qpmulti_t * multi = rcuctx -> multi ;
1435
1438
REQUIRE (QPMULTI_VALID (multi ));
1439
+
1440
+ /* reassure thread sanitizer */
1441
+ LOCK (& multi -> mutex );
1442
+
1436
1443
dns_qp_t * qp = & multi -> writer ;
1437
1444
REQUIRE (QP_VALID (qp ));
1438
1445
1439
- REQUIRE (rcuctx -> count == 0 );
1440
-
1441
1446
destroy_guts (qp );
1447
+
1448
+ UNLOCK (& multi -> mutex );
1449
+
1442
1450
isc_mutex_destroy (& multi -> mutex );
1443
1451
isc_mem_putanddetach (& rcuctx -> mctx , rcuctx ,
1444
1452
STRUCT_FLEX_SIZE (rcuctx , chunk , rcuctx -> count ));
You can’t perform that action at this time.
0 commit comments