diff options
Diffstat (limited to 'library/std/src')
| -rw-r--r-- | library/std/src/lazy.rs | 28 | 
1 files changed, 4 insertions, 24 deletions
| diff --git a/library/std/src/lazy.rs b/library/std/src/lazy.rs index c1d05213e11..f0548582d2f 100644 --- a/library/std/src/lazy.rs +++ b/library/std/src/lazy.rs @@ -517,6 +517,7 @@ mod tests { mpsc::channel, Mutex, }, + thread, }; #[test] @@ -553,26 +554,8 @@ mod tests { } } - // miri doesn't support threads - #[cfg(not(miri))] fn spawn_and_wait<R: Send + 'static>(f: impl FnOnce() -> R + Send + 'static) -> R { - crate::thread::spawn(f).join().unwrap() - } - - #[cfg(not(miri))] - fn spawn(f: impl FnOnce() + Send + 'static) { - let _ = crate::thread::spawn(f); - } - - // "stub threads" for Miri - #[cfg(miri)] - fn spawn_and_wait<R: Send + 'static>(f: impl FnOnce() -> R + Send + 'static) -> R { - f(()) - } - - #[cfg(miri)] - fn spawn(f: impl FnOnce() + Send + 'static) { - f(()) + thread::spawn(f).join().unwrap() } #[test] @@ -735,7 +718,6 @@ mod tests { } #[test] - #[cfg_attr(miri, ignore)] // leaks memory fn static_sync_lazy() { static XS: SyncLazy<Vec<i32>> = SyncLazy::new(|| { let mut xs = Vec::new(); @@ -753,7 +735,6 @@ mod tests { } #[test] - #[cfg_attr(miri, ignore)] // leaks memory fn static_sync_lazy_via_fn() { fn xs() -> &'static Vec<i32> { static XS: SyncOnceCell<Vec<i32>> = SyncOnceCell::new(); @@ -812,7 +793,6 @@ mod tests { } #[test] - #[cfg_attr(miri, ignore)] // deadlocks without real threads fn sync_once_cell_does_not_leak_partially_constructed_boxes() { static ONCE_CELL: SyncOnceCell<String> = SyncOnceCell::new(); @@ -824,7 +804,7 @@ mod tests { for _ in 0..n_readers { let tx = tx.clone(); - spawn(move || { + thread::spawn(move || { loop { if let Some(msg) = ONCE_CELL.get() { tx.send(msg).unwrap(); @@ -836,7 +816,7 @@ mod tests { }); } for _ in 0..n_writers { - spawn(move || { + thread::spawn(move || { let _ = ONCE_CELL.set(MSG.to_owned()); }); } | 
