diff options
author | Wladimir J. van der Laan <laanwj@protonmail.com> | 2020-02-28 22:37:49 +0100 |
---|---|---|
committer | Wladimir J. van der Laan <laanwj@protonmail.com> | 2020-02-28 22:51:54 +0100 |
commit | 1a51cd1ac5a094c911d6cafb3f57ef0798d51570 (patch) | |
tree | e3c48e5f9dcd5788fc56529b9dc6284eefebce3f | |
parent | 7a266a679d66803a2838324179a50dd0757bbb54 (diff) | |
parent | dc9305b6162ec615ff5fb2876e4f312051b543af (diff) |
Merge #17800: random: don't special case clock usage on macOS
dc9305b6162ec615ff5fb2876e4f312051b543af random: don't special case clock usage on macOS (fanquake)
Pull request description:
`clock_gettime()`, `CLOCK_MONOTONIC` and `CLOCK_REALTIME` are all available for use on
macOS (now that we require macOS >=10.12 and build against 10.14). Use them rather than the [deprecated](https://developer.apple.com/library/archive/documentation/Darwin/Conceptual/KernelProgramming/Mach/Mach.html) `mach_timespec_t` time API.
I mentioned the possibility for this change [in #17270](https://github.com/bitcoin/bitcoin/pull/17270#discussion_r346090606).
[master](1dbf3350c683f93d7fc9b861400724f6fd2b2f1d):
```bash
2019-12-23T20:49:43Z Feeding 216 bytes of dynamic environment data into RNG
2019-12-23T20:50:43Z Feeding 216 bytes of dynamic environment data into RNG
```
This PR:
```bash
2019-12-23T20:32:41Z Feeding 232 bytes of dynamic environment data into RNG
2019-12-23T20:33:42Z Feeding 232 bytes of dynamic environment data into RNG
```
~~Depends on #16392.~~ Merged.
ACKs for top commit:
laanwj:
ACK dc9305b6162ec615ff5fb2876e4f312051b543af
Tree-SHA512: 18c2f336ea628f9cf7339b817381d230a18893fd9c0351bf99a39ca6f45c5b0a20af9d599d48d6c09515627d5edafa91337c17f9f790264251d2cdcb3763bbd5
-rw-r--r-- | src/randomenv.cpp | 14 |
1 files changed, 0 insertions, 14 deletions
diff --git a/src/randomenv.cpp b/src/randomenv.cpp index 6992c720ff..27f5b1b082 100644 --- a/src/randomenv.cpp +++ b/src/randomenv.cpp @@ -237,8 +237,6 @@ void RandAddDynamicEnv(CSHA512& hasher) GetSystemTimeAsFileTime(&ftime); hasher << ftime; #else -# ifndef __MACH__ - // On non-MacOS systems, use various clock_gettime() calls. struct timespec ts = {}; # ifdef CLOCK_MONOTONIC clock_gettime(CLOCK_MONOTONIC, &ts); @@ -252,18 +250,6 @@ void RandAddDynamicEnv(CSHA512& hasher) clock_gettime(CLOCK_BOOTTIME, &ts); hasher << ts; # endif -# else - // On MacOS use mach_absolute_time (number of CPU ticks since boot) as a replacement for CLOCK_MONOTONIC, - // and clock_get_time for CALENDAR_CLOCK as a replacement for CLOCK_REALTIME. - hasher << mach_absolute_time(); - // From https://gist.github.com/jbenet/1087739 - clock_serv_t cclock; - mach_timespec_t mts = {}; - if (host_get_clock_service(mach_host_self(), CALENDAR_CLOCK, &cclock) == KERN_SUCCESS && clock_get_time(cclock, &mts) == KERN_SUCCESS) { - hasher << mts; - mach_port_deallocate(mach_task_self(), cclock); - } -# endif // gettimeofday is available on all UNIX systems, but only has microsecond precision. struct timeval tv = {}; gettimeofday(&tv, nullptr); |