about summary refs log tree commit diff
diff options
context:
space:
mode:
authorChris Denton <chris@chrisdenton.dev>2024-04-04 10:48:11 +0000
committerChris Denton <chris@chrisdenton.dev>2024-04-04 10:48:11 +0000
commit7b8f93ef4c2b01b6cc7656123301f0f5e322b603 (patch)
tree0cb7a8788e9975ee5707aeadb36bcf185d8e1fc4
parente457b77e2a9673db5e4e83f79d8961b6e2cb454b (diff)
downloadrust-7b8f93ef4c2b01b6cc7656123301f0f5e322b603.tar.gz
rust-7b8f93ef4c2b01b6cc7656123301f0f5e322b603.zip
Add comments about using debug_assert
-rw-r--r--library/std/src/sys/pal/windows/stack_overflow.rs4
1 files changed, 4 insertions, 0 deletions
diff --git a/library/std/src/sys/pal/windows/stack_overflow.rs b/library/std/src/sys/pal/windows/stack_overflow.rs
index 6f2b902c71e..f93f31026f8 100644
--- a/library/std/src/sys/pal/windows/stack_overflow.rs
+++ b/library/std/src/sys/pal/windows/stack_overflow.rs
@@ -6,6 +6,8 @@ use crate::thread;
 /// Reserve stack space for use in stack overflow exceptions.
 pub unsafe fn reserve_stack() {
     let result = c::SetThreadStackGuarantee(&mut 0x5000);
+    // Reserving stack space is not critical so we allow it to fail in the released build of libstd.
+    // We still use debug assert here so that CI will test that we haven't made a mistake calling the function.
     debug_assert_ne!(result, 0, "failed to reserve stack space for exception handling");
 }
 
@@ -26,6 +28,8 @@ unsafe extern "system" fn vectored_handler(ExceptionInfo: *mut c::EXCEPTION_POIN
 
 pub unsafe fn init() {
     let result = c::AddVectoredExceptionHandler(0, Some(vectored_handler));
+    // Similar to the above, adding the stack overflow handler is allowed to fail
+    // but a debug assert is used so CI will still test that it normally works.
     debug_assert!(!result.is_null(), "failed to install exception handler");
     // Set the thread stack guarantee for the main thread.
     reserve_stack();