Refactor prng to not use 64-bit atomics on 32-bit platforms.

This resolves #495.
This commit is contained in:
Jason Evans
2016-11-07 10:52:44 -08:00
parent e0a9e78374
commit 04b463546e
8 changed files with 340 additions and 58 deletions

View File

@@ -878,7 +878,7 @@ prof_sample_threshold_update(prof_tdata_t *tdata)
* pp 500
* (http://luc.devroye.org/rnbookindex.html)
*/
r = prng_lg_range(&tdata->prng_state, 53, false);
r = prng_lg_range_u64(&tdata->prng_state, 53);
u = (double)r * (1.0/9007199254740992.0L);
tdata->bytes_until_sample = (uint64_t)(log(u) /
log(1.0 - (1.0 / (double)((uint64_t)1U << lg_prof_sample))))