From 8df2b63c21d0aabaa894930e3ab1ea63c49d47ff Mon Sep 17 00:00:00 2001 From: wangzhengquan <wangzhengquan85@126.com> Date: 星期三, 13 一月 2021 17:54:51 +0800 Subject: [PATCH] fix bug invalid argument --- src/px_sem_util.cpp | 15 +++++++++------ 1 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/px_sem_util.cpp b/src/px_sem_util.cpp index 80008fb..9de9c38 100644 --- a/src/px_sem_util.cpp +++ b/src/px_sem_util.cpp @@ -1,13 +1,16 @@ #include "px_sem_util.h" +#define NANO 1000000000 struct timespec PXSemUtil::calc_sem_timeout(const struct timespec *ts) { - int tmp_sec; + + struct timespec res; struct timespec timeout; if (clock_gettime(CLOCK_REALTIME, &timeout) == -1) err_exit(errno, "clock_gettime"); - timeout.tv_nsec += ts->tv_nsec; - tmp_sec = timeout.tv_nsec / 10e9; - timeout.tv_nsec = timeout.tv_nsec - tmp_sec * 10e9; - timeout.tv_sec += ts->tv_sec + tmp_sec; - return timeout; + + res.tv_sec = timeout.tv_sec + ts->tv_sec; + res.tv_nsec = timeout.tv_nsec + ts->tv_nsec; + res.tv_sec = res.tv_sec + floor(res.tv_nsec / NANO); + res.tv_nsec = res.tv_nsec % NANO; + return res; } \ No newline at end of file -- Gitblit v1.8.0