diff options
author | David Gibson <david@gibson.dropbear.id.au> | 2024-08-06 16:18:36 +1000 |
---|---|---|
committer | Stefano Brivio <sbrivio@redhat.com> | 2024-08-07 09:15:40 +0200 |
commit | 95569e4aa4da405c0df152956a58a119e248143c (patch) | |
tree | 1f28e327723cb77d6627327c23d3d552e6863ee7 /util.c | |
parent | fbb0c9523e416a5c1ecf42287d867fc799fbf0f9 (diff) | |
download | passt-95569e4aa4da405c0df152956a58a119e248143c.tar passt-95569e4aa4da405c0df152956a58a119e248143c.tar.gz passt-95569e4aa4da405c0df152956a58a119e248143c.tar.bz2 passt-95569e4aa4da405c0df152956a58a119e248143c.tar.lz passt-95569e4aa4da405c0df152956a58a119e248143c.tar.xz passt-95569e4aa4da405c0df152956a58a119e248143c.tar.zst passt-95569e4aa4da405c0df152956a58a119e248143c.zip |
util: Some corrections for timespec_diff_us
The comment for timespec_diff_us() claims it will wrap after 2^64µs. This
is incorrect for two reasons:
* It returns a long long, which is probably 64-bits, but might not be
* It returns a signed value, so even if it is 64 bits it will wrap after
2^63µs
Correct the comment and use an explicitly 64-bit type to avoid that
imprecision.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Diffstat (limited to 'util.c')
-rw-r--r-- | util.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -244,9 +244,9 @@ void sock_probe_mem(struct ctx *c) * @a: Minuend timestamp * @b: Subtrahend timestamp * - * Return: difference in microseconds (wraps after 2^64 / 10^6s ~= 585k years) + * Return: difference in microseconds (wraps after 2^63 / 10^6s ~= 292k years) */ -long long timespec_diff_us(const struct timespec *a, const struct timespec *b) +int64_t timespec_diff_us(const struct timespec *a, const struct timespec *b) { if (a->tv_nsec < b->tv_nsec) { return (b->tv_nsec - a->tv_nsec) / 1000 + |