Don't perform mitigation for thread-unsafe libc::exit under Miri.

1. Miri's exit is thread-safe
2. Miri doesn't (yet) support `libc::gettid`, used in the implementation of the mitigation on Linux.
This commit is contained in:
Zachary S 2024-06-20 23:19:18 -05:00
parent bff3531397
commit c36fdeb9a3

View File

@ -1,5 +1,13 @@
cfg_if::cfg_if! {
if #[cfg(target_os = "linux")] {
if #[cfg(miri)] {
/// Mitigation for <https://github.com/rust-lang/rust/issues/126600>
///
/// This mitigation is not necessary when running under Miri, so this function does nothing
/// when running under Miri.
pub(crate) fn unique_thread_exit() {
// Mitigation not required on Miri, where `exit` is thread-safe.
}
} else if #[cfg(target_os = "linux")] {
/// Mitigation for <https://github.com/rust-lang/rust/issues/126600>
///
/// On `unix` (where `libc::exit` may not be thread-safe), ensure that only one Rust thread