Add std::process::abort
This calls libc abort on Unix and fastfail on Windows.
This commit is contained in:
parent
5bd1e7f59f
commit
fc0140d271
1 changed files with 15 additions and 0 deletions
|
@ -825,6 +825,21 @@ pub fn exit(code: i32) -> ! {
|
||||||
::sys::os::exit(code)
|
::sys::os::exit(code)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Terminates the process in an abnormal fashion.
|
||||||
|
///
|
||||||
|
/// The function will never return and will immediately terminate the current
|
||||||
|
/// process in a platform specific "abnormal" manner.
|
||||||
|
///
|
||||||
|
/// Note that because this function never returns, and that it terminates the
|
||||||
|
/// process, no destructors on the current stack or any other thread's stack
|
||||||
|
/// will be run. If a clean shutdown is needed it is recommended to only call
|
||||||
|
/// this function at a known point where there are no more destructors left
|
||||||
|
/// to run.
|
||||||
|
#[unstable(feature = "process_abort", issue = "37838")]
|
||||||
|
pub fn abort() -> ! {
|
||||||
|
unsafe { ::sys::abort_internal() };
|
||||||
|
}
|
||||||
|
|
||||||
#[cfg(all(test, not(target_os = "emscripten")))]
|
#[cfg(all(test, not(target_os = "emscripten")))]
|
||||||
mod tests {
|
mod tests {
|
||||||
use io::prelude::*;
|
use io::prelude::*;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue