sched: update timeout randomization
Use UTI_GetRandomBytes() instead of random() to calculate the random part of the timeout. This was the only remaining use of random() in the code and the srandom() call can be removed.
This commit is contained in:
parent
8225bf01f7
commit
dfc96e4702
1 changed files with 4 additions and 3 deletions
7
sched.c
7
sched.c
|
@ -150,8 +150,6 @@ SCH_Initialise(void)
|
|||
LCL_ReadRawTime(&last_select_ts_raw);
|
||||
last_select_ts = last_select_ts_raw;
|
||||
|
||||
srandom(last_select_ts.tv_sec << 16 ^ last_select_ts.tv_usec);
|
||||
|
||||
initialised = 1;
|
||||
}
|
||||
|
||||
|
@ -376,7 +374,10 @@ SCH_AddTimeoutInClass(double min_delay, double separation, double randomness,
|
|||
assert(class < SCH_NumberOfClasses);
|
||||
|
||||
if (randomness > 0.0) {
|
||||
r = random() % 0xffff / (0xffff - 1.0) * randomness + 1.0;
|
||||
uint16_t rnd;
|
||||
|
||||
UTI_GetRandomBytes(&rnd, sizeof (rnd));
|
||||
r = rnd / (double)0xffff * randomness + 1.0;
|
||||
min_delay *= r;
|
||||
separation *= r;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue