@@ -4,7 +4,8 @@ use std::iter::FromIterator;
4
4
use std:: sync:: atomic:: { AtomicUsize , Ordering :: SeqCst } ;
5
5
6
6
use graph:: prelude:: { lazy_static, q} ;
7
- use rand:: { thread_rng, Rng } ;
7
+ use rand:: { rngs:: SmallRng , thread_rng, Rng } ;
8
+ use rand:: { FromEntropy , SeedableRng } ;
8
9
use structopt:: StructOpt ;
9
10
10
11
use graph:: util:: cache_weight:: CacheWeight ;
@@ -360,6 +361,9 @@ struct Opt {
360
361
/// Always use objects of size `--obj-size`
361
362
#[ structopt( short, long) ]
362
363
fixed : bool ,
364
+ /// The seed of the random number generator
365
+ #[ structopt( long) ]
366
+ seed : Option < u64 > ,
363
367
}
364
368
365
369
fn stress < T : Template < T , Item = T > > ( opt : & Opt ) {
@@ -373,7 +377,11 @@ fn stress<T: Template<T, Item = T>>(opt: &Opt) {
373
377
opt. cache_size
374
378
) ;
375
379
376
- let mut rng = thread_rng ( ) ;
380
+ let mut rng = match opt. seed {
381
+ None => SmallRng :: from_entropy ( ) ,
382
+ Some ( seed) => SmallRng :: seed_from_u64 ( seed) ,
383
+ } ;
384
+
377
385
let base_mem = ALLOCATED . load ( SeqCst ) ;
378
386
let print_mod = opt. niter / opt. print_count + 1 ;
379
387
let mut should_print = true ;
0 commit comments