From 2c65db46500207f8445aa4baa53bfbb6602e0e18 Mon Sep 17 00:00:00 2001 From: wangzhengquan <wangzhengquan85@126.com> Date: 星期四, 21 一月 2021 16:37:03 +0800 Subject: [PATCH] restructure --- src/psem.cpp | 19 ++----------------- 1 files changed, 2 insertions(+), 17 deletions(-) diff --git a/src/psem.cpp b/src/psem.cpp index 8d9333f..d0eb2c2 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) { -- Gitblit v1.8.0