diff options
Diffstat (limited to 'src/lib9/lrand.c')
-rw-r--r-- | src/lib9/lrand.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/src/lib9/lrand.c b/src/lib9/lrand.c index 8f536456..3d1b05fe 100644 --- a/src/lib9/lrand.c +++ b/src/lib9/lrand.c @@ -63,17 +63,15 @@ p9lrand(void) lock(&lk); - rng_tap--; - if(rng_tap < rng_vec) { - if(rng_feed == 0) { + if(rng_tap <= rng_vec) { + if(rng_feed == 0) isrand(1); - rng_tap--; - } rng_tap += LEN; } - rng_feed--; - if(rng_feed < rng_vec) + rng_tap--; + if(rng_feed <= rng_vec) rng_feed += LEN; + rng_feed--; x = (*rng_feed + *rng_tap) & MASK; *rng_feed = x; |