tgraf / bmon

bandwidth monitor and rate estimator
Other
1.2k stars 98 forks source link

Restrict overmatching MACH ifdef to only trigger on OSX and Mach #98

Open Zopolis4 opened 2 years ago

Zopolis4 commented 2 years ago

As said in a3d894000b7243e4bfd54f99de3bee8154827897, this check is only intended for OSX.

Instead of using gettimeofday(), switch to clock_gettime() with
CLOCK_MONOTONIC on systems that support it.  OS X does not provide
clock_gettime(), so this commit also adds a Mach-specific implementation.

Hurd also uses Mach, but does not have the same shortcomings as OSX in this area. https://www.gnu.org/software/hurd/hurd/porting/guidelines.html

#ifdef __MACH__
Some applications put Apple Darwin-specific code inside #ifdef __MACH__ guards. Such guard is clearly not enough, since not only Apple uses Mach as a kernel. This should be replaced by #if defined(__MACH__) && defined(__APPLE__)