mirror of
https://github.com/Mathewnd/Astral.git
synced 2026-10-27 12:48:22 +00:00
time: fix diffus
This commit is contained in:
@@ -32,9 +32,20 @@ static inline time_t timespec_diffms(timespec_t a, timespec_t b) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static inline time_t timespec_diffus(timespec_t a, timespec_t b) {
|
static inline time_t timespec_diffus(timespec_t a, timespec_t b) {
|
||||||
time_t nsecdiff = abs(a.ns - b.ns);
|
if (a.s > b.s || (a.s == b.s && a.ns > b.ns)) {
|
||||||
time_t secdiff = abs(a.s - b.s);
|
timespec_t tmp = a;
|
||||||
return nsecdiff / 1000 + secdiff * 1000000;
|
a = b;
|
||||||
|
b = tmp;
|
||||||
|
}
|
||||||
|
|
||||||
|
time_t secdiff = b.s - a.s;
|
||||||
|
time_t nsecdiff = b.ns - a.ns;
|
||||||
|
if (nsecdiff < 0) {
|
||||||
|
secdiff--;
|
||||||
|
nsecdiff += 1000000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
return secdiff * 1000000 + nsecdiff / 1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline time_t timespec_ns(timespec_t a) {
|
static inline time_t timespec_ns(timespec_t a) {
|
||||||
|
|||||||
Reference in New Issue
Block a user