Remove antipattern from process::exit docs
This commit is contained in:
parent
8ff0fd1fa9
commit
0df02bb35b
1 changed files with 13 additions and 28 deletions
|
@ -1964,7 +1964,17 @@ impl Child {
|
||||||
/// process, no destructors on the current stack or any other thread's stack
|
/// 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
|
/// 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
|
/// this function at a known point where there are no more destructors left
|
||||||
/// to run.
|
/// to run; or, preferably, simply return a type implementing [`Termination`]
|
||||||
|
/// (such as [`ExitCode`] or `Result`) from the `main` function and avoid this
|
||||||
|
/// function altogether:
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// # use std::io::Error as MyError;
|
||||||
|
/// fn main() -> Result<(), MyError> {
|
||||||
|
/// // ...
|
||||||
|
/// Ok(())
|
||||||
|
/// }
|
||||||
|
/// ```
|
||||||
///
|
///
|
||||||
/// ## Platform-specific behavior
|
/// ## Platform-specific behavior
|
||||||
///
|
///
|
||||||
|
@ -1972,39 +1982,14 @@ impl Child {
|
||||||
/// will be visible to a parent process inspecting the exit code. On most
|
/// will be visible to a parent process inspecting the exit code. On most
|
||||||
/// Unix-like platforms, only the eight least-significant bits are considered.
|
/// Unix-like platforms, only the eight least-significant bits are considered.
|
||||||
///
|
///
|
||||||
/// # Examples
|
/// For example, the exit code for this example will be `0` on Linux, but `256`
|
||||||
///
|
/// on Windows:
|
||||||
/// Due to this function’s behavior regarding destructors, a conventional way
|
|
||||||
/// to use the function is to extract the actual computation to another
|
|
||||||
/// function and compute the exit code from its return value:
|
|
||||||
///
|
|
||||||
/// ```
|
|
||||||
/// fn run_app() -> Result<(), ()> {
|
|
||||||
/// // Application logic here
|
|
||||||
/// Ok(())
|
|
||||||
/// }
|
|
||||||
///
|
|
||||||
/// fn main() {
|
|
||||||
/// std::process::exit(match run_app() {
|
|
||||||
/// Ok(_) => 0,
|
|
||||||
/// Err(err) => {
|
|
||||||
/// eprintln!("error: {err:?}");
|
|
||||||
/// 1
|
|
||||||
/// }
|
|
||||||
/// });
|
|
||||||
/// }
|
|
||||||
/// ```
|
|
||||||
///
|
|
||||||
/// Due to [platform-specific behavior], the exit code for this example will be
|
|
||||||
/// `0` on Linux, but `256` on Windows:
|
|
||||||
///
|
///
|
||||||
/// ```no_run
|
/// ```no_run
|
||||||
/// use std::process;
|
/// use std::process;
|
||||||
///
|
///
|
||||||
/// process::exit(0x0100);
|
/// process::exit(0x0100);
|
||||||
/// ```
|
/// ```
|
||||||
///
|
|
||||||
/// [platform-specific behavior]: #platform-specific-behavior
|
|
||||||
#[stable(feature = "rust1", since = "1.0.0")]
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
pub fn exit(code: i32) -> ! {
|
pub fn exit(code: i32) -> ! {
|
||||||
crate::rt::cleanup();
|
crate::rt::cleanup();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue