From e782ad440171cc5e68c987352e3470b1a4234683 Mon Sep 17 00:00:00 2001
From: wangzhengquan <wangzhengquan85@126.com>
Date: 星期四, 04 二月 2021 18:41:52 +0800
Subject: [PATCH] update
---
src/psem.cpp | 23 ++++-------------------
1 files changed, 4 insertions(+), 19 deletions(-)
diff --git a/src/psem.cpp b/src/psem.cpp
index 8d9333f..fd06216 100644
--- a/src/psem.cpp
+++ b/src/psem.cpp
@@ -1,26 +1,11 @@
#include "psem.h"
#include <semaphore.h>
+#include "time_util.h"
-#define NANO 1000000000
-
-
-static struct timespec psem_calc_abs_timeout(const struct timespec *ts) {
-
- struct timespec res;
- struct timespec timeout;
- if (clock_gettime(CLOCK_REALTIME, &timeout) == -1)
- err_exit(errno, "clock_gettime");
-
- 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;
-}
int psem_timedwait(sem_t *sem, const struct timespec *ts) {
- struct timespec abs_timeout = psem_calc_abs_timeout(ts);
+ struct timespec abs_timeout = TimeUtil::calc_abs_time(ts);
int rv ;
while ( (rv = sem_timedwait(sem, &abs_timeout)) == -1) {
@@ -28,7 +13,7 @@
continue;
else {
// LoggerFactory::getLogger()->error(errno, "LockFreeQueue push_timeout");
- return rv;
+ return -1;
}
}
return 0;
@@ -42,7 +27,7 @@
continue;
else {
// LoggerFactory::getLogger()->error(errno, "LockFreeQueue push_timeout");
- return rv;
+ return -1;
}
}
return 0;
--
Gitblit v1.8.0