File tree Expand file tree Collapse file tree 1 file changed +5
-16
lines changed
futures-util/src/async_await Expand file tree Collapse file tree 1 file changed +5
-16
lines changed Original file line number Diff line number Diff line change 11use core:: sync:: atomic:: { AtomicUsize , Ordering } ;
22#[ cfg( feature = "std" ) ]
3- use std:: {
4- cell:: Cell ,
5- collections:: hash_map:: DefaultHasher ,
6- hash:: Hasher ,
7- } ;
3+ use std:: cell:: Cell ;
84
95// Based on [Fisher–Yates shuffle].
106//
@@ -32,17 +28,9 @@ fn random() -> usize {
3228 // Any non-zero seed will do
3329 let mut seed = 0 ;
3430 while seed == 0 {
35- let mut hasher = DefaultHasher :: new ( ) ;
36- hasher. write_usize ( COUNTER . fetch_add ( 1 , Ordering :: Relaxed ) ) ;
37- seed = hasher. finish ( ) ;
31+ seed = COUNTER . fetch_add ( 1 , Ordering :: Relaxed ) ;
3832 }
39- seed as usize
40- }
41-
42- #[ cfg( not( feature = "std" ) ) ]
43- const fn prng_seed ( ) -> usize {
44- // A deterministic seed is used in absense of TLS
45- 42
33+ seed
4634 }
4735
4836 /// [xorshift*] is used on 64bit platforms.
@@ -98,7 +86,8 @@ fn random() -> usize {
9886
9987 #[ cfg( not( feature = "std" ) ) ]
10088 fn rng ( ) -> usize {
101- static RNG : AtomicUsize = AtomicUsize :: new ( prng_seed ( ) ) ;
89+ // A deterministic seed is used in absense of TLS
90+ static RNG : AtomicUsize = AtomicUsize :: new ( 42 ) ;
10291
10392 // Preemption here can cause multiple threads to observe repeated state
10493 let ( x, res) = xorshift ( RNG . load ( Ordering :: Relaxed ) ) ;
You can’t perform that action at this time.
0 commit comments