diff options
| author | Dylan DPC <99973273+Dylan-DPC@users.noreply.github.com> | 2023-02-21 14:19:59 +0530 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-02-21 14:19:59 +0530 |
| commit | e781a6ff3b39b0baff6d1bae6a2422cc39cb62d8 (patch) | |
| tree | 6b87cd40a009165b309d71c737a9a4368cf50ea7 | |
| parent | 4dea3a295f99f166472ddec78ed9d590900436ff (diff) | |
| parent | ec9a4ce19e6f1a6c760633bcc8826d47cba27f22 (diff) | |
| download | rust-e781a6ff3b39b0baff6d1bae6a2422cc39cb62d8.tar.gz rust-e781a6ff3b39b0baff6d1bae6a2422cc39cb62d8.zip | |
Rollup merge of #108105 - majaha:patch-1, r=cuviper
Explain the default panic hook better This changes the documentation of `std::panic::set_hook` and `take_hook` to explain how the default panic hook works. In particular the fact that `take_hook` registers the default hook, rather than no hook at all, was missing from the docs. I also reworded a few things for clarity.
| -rw-r--r-- | library/std/src/panicking.rs | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/library/std/src/panicking.rs b/library/std/src/panicking.rs index b0db3112e22..e59f32af77d 100644 --- a/library/std/src/panicking.rs +++ b/library/std/src/panicking.rs @@ -95,13 +95,16 @@ impl Default for Hook { static HOOK: RwLock<Hook> = RwLock::new(Hook::Default); -/// Registers a custom panic hook, replacing any that was previously registered. +/// Registers a custom panic hook, replacing the previously registered hook. /// /// The panic hook is invoked when a thread panics, but before the panic runtime /// is invoked. As such, the hook will run with both the aborting and unwinding -/// runtimes. The default hook prints a message to standard error and generates -/// a backtrace if requested, but this behavior can be customized with the -/// `set_hook` and [`take_hook`] functions. +/// runtimes. +/// +/// The default hook, which is registered at startup, prints a message to standard error and +/// generates a backtrace if requested. This behavior can be customized using the `set_hook` function. +/// The current hook can be retrieved while reinstating the default hook with the [`take_hook`] +/// function. /// /// [`take_hook`]: ./fn.take_hook.html /// @@ -143,13 +146,14 @@ pub fn set_hook(hook: Box<dyn Fn(&PanicInfo<'_>) + 'static + Sync + Send>) { drop(old); } -/// Unregisters the current panic hook, returning it. +/// Unregisters the current panic hook and returns it, registering the default hook +/// in its place. /// /// *See also the function [`set_hook`].* /// /// [`set_hook`]: ./fn.set_hook.html /// -/// If no custom hook is registered, the default hook will be returned. +/// If the default hook is registered it will be returned, but remain registered. /// /// # Panics /// |
