Skip to content

Commit 9c18356

Browse files
committed
Auto merge of #141255 - matthiaskrgr:rollup-ravsgen, r=matthiaskrgr
Rollup of 6 pull requests Successful merges: - #131200 (Handle `rustc_query_system` cases of `rustc::potential_query_instability` lint) - #141244 (windows: document that we rely on an undocumented property of GetUserProfileDirectoryW) - #141247 (skip compiler tools sanity checks on certain commands) - #141248 (fix data race in ReentrantLock fallback for targets without 64bit atomics) - #141249 (introduce common macro for `MutVisitor` and `Visitor` to dedup code) - #141253 (Warning added when dependency crate has async drop types, and the feature is disabled) r? `@ghost` `@rustbot` modify labels: rollup
2 parents 64a4115 + afff861 commit 9c18356

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -580,6 +580,7 @@ Definite bugs found:
580580
* [Weak-memory-induced memory leak in Windows thread-local storage](https://github.com/rust-lang/rust/pull/124281)
581581
* [A bug in the new `RwLock::downgrade` implementation](https://rust-lang.zulipchat.com/#narrow/channel/269128-miri/topic/Miri.20error.20library.20test) (caught by Miri before it landed in the Rust repo)
582582
* [Mockall reading unintialized memory when mocking `std::io::Read::read`, even if all expectations are satisfied](https://github.com/asomers/mockall/issues/647) (caught by Miri running Tokio's test suite)
583+
* [`ReentrantLock` not correctly dealing with reuse of addresses for TLS storage of different threads](https://github.com/rust-lang/rust/pull/141248)
583584

584585
Violations of [Stacked Borrows] found that are likely bugs (but Stacked Borrows is currently just an experiment):
585586

tests/many-seeds/reentrant-lock.rs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#![feature(reentrant_lock)]
2+
//! This is a regression test for
3+
//! <https://rust-lang.zulipchat.com/#narrow/channel/269128-miri/topic/reentrant.20lock.20failure.20on.20musl>.
4+
5+
use std::cell::Cell;
6+
use std::sync::ReentrantLock;
7+
use std::thread;
8+
9+
static LOCK: ReentrantLock<Cell<i32>> = ReentrantLock::new(Cell::new(0));
10+
11+
fn main() {
12+
for _ in 0..20 {
13+
thread::spawn(move || {
14+
let val = LOCK.lock();
15+
val.set(val.get() + 1);
16+
drop(val);
17+
});
18+
}
19+
}

0 commit comments

Comments
 (0)