Use process::abort() instead of libc::abort() for wasm32
//! place, you can use the `AbortIfPanic` helper to protect against
//! accidental panics in the rayon code itself.
+#[cfg(any(not(target_arch = "wasm32"), target_os = "emscripten"))]
use libc;
+#[cfg(all(target_arch = "wasm32", not(target_os = "emscripten")))]
+use std::process;
use std::any::Any;
use std::panic::{self, AssertUnwindSafe};
use std::io::stderr;
@@ -27,9 +30,12 @@ pub struct AbortIfPanic;
impl Drop for AbortIfPanic {
fn drop(&mut self) {
- unsafe {
let _ = writeln!(&mut stderr(), "Rayon: detected unexpected panic; aborting");
+ #[cfg(any(not(target_arch = "wasm32"), target_os = "emscripten"))]
+ unsafe {
libc::abort();
}
+ #[cfg(all(target_arch = "wasm32", not(target_os = "emscripten")))]
+ process::abort();
}
}
