diff options
| author | Steven Fackler <sfackler@gmail.com> | 2016-11-17 09:31:14 -0800 |
|---|---|---|
| committer | Steven Fackler <sfackler@gmail.com> | 2016-11-17 16:20:08 -0800 |
| commit | fc0140d2714d06a45433bb747b4072cdc4665732 (patch) | |
| tree | 70785eabe0b35770ceffb2ff7230bd415fb7030d /src/libstd/process.rs | |
| parent | 5bd1e7f59ffe6126db57ea94b90690d1ac39b932 (diff) | |
| download | rust-fc0140d2714d06a45433bb747b4072cdc4665732.tar.gz rust-fc0140d2714d06a45433bb747b4072cdc4665732.zip | |
Add std::process::abort
This calls libc abort on Unix and fastfail on Windows.
Diffstat (limited to 'src/libstd/process.rs')
| -rw-r--r-- | src/libstd/process.rs | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/libstd/process.rs b/src/libstd/process.rs index 9d21a76e81b..c99fda9febc 100644 --- a/src/libstd/process.rs +++ b/src/libstd/process.rs @@ -825,6 +825,21 @@ pub fn exit(code: i32) -> ! { ::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")))] mod tests { use io::prelude::*; |
