()
| 732 | // faulthandler_disable |
| 733 | #[cfg(any(unix, windows))] |
| 734 | fn faulthandler_disable_internal() { |
| 735 | if !FATAL_ERROR.enabled.swap(false, Ordering::Relaxed) { |
| 736 | return; |
| 737 | } |
| 738 | |
| 739 | unsafe { |
| 740 | for handler in FAULTHANDLER_HANDLERS.iter_mut() { |
| 741 | faulthandler_disable_fatal_handler(handler); |
| 742 | } |
| 743 | } |
| 744 | |
| 745 | // Remove Windows vectored exception handler |
| 746 | #[cfg(windows)] |
| 747 | { |
| 748 | use windows_sys::Win32::System::Diagnostics::Debug::RemoveVectoredExceptionHandler; |
| 749 | let h = EXC_HANDLER.swap(0, Ordering::Relaxed); |
| 750 | if h != 0 { |
| 751 | unsafe { |
| 752 | RemoveVectoredExceptionHandler(h as *mut core::ffi::c_void); |
| 753 | } |
| 754 | } |
| 755 | } |
| 756 | } |
| 757 | |
| 758 | #[cfg(not(any(unix, windows)))] |
| 759 | fn faulthandler_enable_internal() -> bool { |
no test coverage detected