about summary refs log tree commit diff
path: root/library/std/src/thread
diff options
context:
space:
mode:
authorChris Denton <chris@chrisdenton.dev>2024-03-06 19:21:34 +0000
committerChris Denton <chris@chrisdenton.dev>2024-03-06 19:54:09 +0000
commit87183177255e39b2b3016cf82e8ba2fbb5d397f5 (patch)
treec7b67ef90a1fc56daf399219c9844bb6acdbdc2e /library/std/src/thread
parent8cd7aaa105e06f99cbad3e9db677eedec1f2c4b4 (diff)
downloadrust-87183177255e39b2b3016cf82e8ba2fbb5d397f5.tar.gz
rust-87183177255e39b2b3016cf82e8ba2fbb5d397f5.zip
Document and test minimal stack size on Windows
Diffstat (limited to 'library/std/src/thread')
-rw-r--r--library/std/src/thread/tests.rs13
1 files changed, 13 insertions, 0 deletions
diff --git a/library/std/src/thread/tests.rs b/library/std/src/thread/tests.rs
index 813ede06415..b81efac6761 100644
--- a/library/std/src/thread/tests.rs
+++ b/library/std/src/thread/tests.rs
@@ -423,3 +423,16 @@ fn scope_join_race() {
         });
     }
 }
+
+// Test that the smallest value for stack_size works on Windows.
+#[cfg(windows)]
+#[test]
+fn test_minimal_thread_stack() {
+    use crate::sync::atomic::AtomicU8;
+    static COUNT: AtomicU8 = AtomicU8::new(0);
+
+    let builder = thread::Builder::new().stack_size(1);
+    let before = builder.spawn(|| COUNT.fetch_add(1, Ordering::Relaxed)).unwrap().join().unwrap();
+    assert_eq!(before, 0);
+    assert_eq!(COUNT.load(Ordering::Relaxed), 1);
+}