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