diff options
| author | Matthias Krüger <476013+matthiaskrgr@users.noreply.github.com> | 2025-05-19 18:08:42 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-05-19 18:08:42 +0200 |
| commit | 6e784f842a93a2d1a6687aef810118c5bcedf219 (patch) | |
| tree | 58f573d0b60ba9e0db85745c205611b7d78f50dc /compiler/rustc_interface/src | |
| parent | 334136f1123bd0c75c334297719a564162c242e3 (diff) | |
| parent | 26ea763f24754cf79191ad9ae949ad285f51c363 (diff) | |
| download | rust-6e784f842a93a2d1a6687aef810118c5bcedf219.tar.gz rust-6e784f842a93a2d1a6687aef810118c5bcedf219.zip | |
Rollup merge of #141248 - RalfJung:reentrant-lock-race, r=joboet
fix data race in ReentrantLock fallback for targets without 64bit atomics See [Zulip](https://rust-lang.zulipchat.com/#narrow/channel/269128-miri/topic/reentrant.20lock.20failure.20on.20musl) for details: the address used to identify a thread might get lazily allocated inside `tls_addr()`, so if we call that *after* doing the `tls_addr.load()` it is too late to establish synchronization with prior threads that used the same address -- the `load()` thus races with the `store()` by that prior thread, and might hence see outdated values, and then the entire logic breaks down. r? `@joboet`
Diffstat (limited to 'compiler/rustc_interface/src')
0 files changed, 0 insertions, 0 deletions
