summaryrefslogtreecommitdiffstats
path: root/LICENSE.BSD
diff options
context:
space:
mode:
authorBaptiste Jonglez <git@bitsofnetworks.org>2016-09-05 22:02:40 +0200
committerBaptiste Jonglez <git@bitsofnetworks.org>2016-11-12 19:29:39 +0100
commita3d894000b7243e4bfd54f99de3bee8154827897 (patch)
treecb8870c2922315e1491763303ed084337ecc2020 /LICENSE.BSD
parent8b2638c349f780a0a66f6b4ef2430747d97bf24b (diff)
Use a monotonic clock instead of a realtime clock
Using a realtime clock is a bad idea: it is affected by any kind of time change, which can happen when the administrator modifies the system time, or more simply when a laptop suspends to RAM and then wakes up from sleep. With the current approach of using a realtime clock: - if the system time jumps forward (e.g. when resuming after a suspend-to-RAM), bmon would take 100% CPU and display random graph data extremely fast, until it "catches up" with the new time. - if the system time jumps backwards, bmon would freeze until *time* "catches up" to the point it was before. bmon then (incorrectly) displays a spike in the graph, because lots of packets have been sent/received since the last update. 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. This change has been tested on Linux 4.1 with glibc and musl, and on FreeBSD 10.0-RELEASE-p12.
Diffstat (limited to 'LICENSE.BSD')
0 files changed, 0 insertions, 0 deletions