Commit 8718317 1 parent 8cd7aaa commit 8718317 Copy full SHA for 8718317
File tree 2 files changed +15
-0
lines changed
2 files changed +15
-0
lines changed Original file line number Diff line number Diff line change @@ -26,6 +26,8 @@ impl Thread {
26
26
pub unsafe fn new ( stack : usize , p : Box < dyn FnOnce ( ) > ) -> io:: Result < Thread > {
27
27
let p = Box :: into_raw ( Box :: new ( p) ) ;
28
28
29
+ // CreateThread rounds up values for the stack size to the nearest page size (at least 4kb).
30
+ // If a value of zero is given then the default stack size is used instead.
29
31
let ret = c:: CreateThread (
30
32
ptr:: null_mut ( ) ,
31
33
stack,
Original file line number Diff line number Diff line change @@ -423,3 +423,16 @@ fn scope_join_race() {
423
423
} ) ;
424
424
}
425
425
}
426
+
427
+ // Test that the smallest value for stack_size works on Windows.
428
+ #[ cfg( windows) ]
429
+ #[ test]
430
+ fn test_minimal_thread_stack ( ) {
431
+ use crate :: sync:: atomic:: AtomicU8 ;
432
+ static COUNT : AtomicU8 = AtomicU8 :: new ( 0 ) ;
433
+
434
+ let builder = thread:: Builder :: new ( ) . stack_size ( 1 ) ;
435
+ let before = builder. spawn ( || COUNT . fetch_add ( 1 , Ordering :: Relaxed ) ) . unwrap ( ) . join ( ) . unwrap ( ) ;
436
+ assert_eq ! ( before, 0 ) ;
437
+ assert_eq ! ( COUNT . load( Ordering :: Relaxed ) , 1 ) ;
438
+ }
You can’t perform that action at this time.
0 commit comments