diff options
author | 2017-11-09 16:56:57 +0200 | |
---|---|---|
committer | 2017-11-09 16:56:57 +0200 | |
commit | 8c4296b7268f72e30e66879353b012ce52effbea (patch) | |
tree | 773772ae44602b2ac4ca4c78d5bffa57ea893982 /src/time/time.c | |
parent | 86f7e1b6c95600b4df01f37fd96665a5956e210b (diff) | |
download | librin-8c4296b7268f72e30e66879353b012ce52effbea.tar.gz librin-8c4296b7268f72e30e66879353b012ce52effbea.tar.bz2 librin-8c4296b7268f72e30e66879353b012ce52effbea.zip |
time: fix normalization.
Diffstat (limited to 'src/time/time.c')
-rw-r--r-- | src/time/time.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/time/time.c b/src/time/time.c index 2c87cba..dbedc65 100644 --- a/src/time/time.c +++ b/src/time/time.c @@ -52,11 +52,11 @@ struct timespec rin_time_normalize(const struct timespec * const t) } if (ret.tv_nsec > 0) { - ret.tv_sec += ret.tv_nsec / tv_nsec_max; - ret.tv_nsec = ret.tv_nsec % tv_nsec_max; + ret.tv_sec += ret.tv_nsec / (tv_nsec_max + 1); + ret.tv_nsec = ret.tv_nsec % (tv_nsec_max + 1); } else { - ret.tv_sec += ret.tv_nsec / tv_nsec_max - 1; - ret.tv_nsec = tv_nsec_max - ret.tv_nsec % tv_nsec_max; + ret.tv_sec += ret.tv_nsec / (tv_nsec_max + 1) - 1; + ret.tv_nsec = (tv_nsec_max + 1) - (-ret.tv_nsec) % (tv_nsec_max + 1); } return ret; |