From 82841486c36288d73e95f3316e91dd7a522d8602 Mon Sep 17 00:00:00 2001 From: wangzhengquan <wangzhengquan85@126.com> Date: 星期一, 08 二月 2021 09:39:57 +0800 Subject: [PATCH] update --- src/psem.h | 40 ++++++++++++++++++++++++++++++++++++---- 1 files changed, 36 insertions(+), 4 deletions(-) diff --git a/src/psem.h b/src/psem.h index 30c6670..fb64dba 100644 --- a/src/psem.h +++ b/src/psem.h @@ -2,13 +2,45 @@ #define _PSEM_H_ #include "usg_common.h" +#include <semaphore.h> +#include "time_util.h" -int psem_wait(sem_t *sem) ; +inline int psem_timedwait(sem_t *sem, const struct timespec *ts) { + struct timespec abs_timeout = TimeUtil::calc_abs_time(ts); + return sem_timedwait(sem, &abs_timeout); + // int rv ; + // while ( (rv = sem_timedwait(sem, &abs_timeout)) == -1) { + // if(errno == EINTR) + // continue; + // else { + // // LoggerFactory::getLogger()->error(errno, "LockFreeQueue push_timeout"); + // return -1; + // } + // } + // return 0; +} -int psem_timedwait(sem_t *sem, const struct timespec *ts); -int psem_trywait(sem_t *sem) ; +inline int psem_wait(sem_t *sem) { + return sem_wait(sem); + // int rv; + // while ( (rv = sem_wait(sem)) == -1) { + // if(errno == EINTR) + // continue; + // else { + // return -1; + // } + // } + // return 0; +} -int psem_post(sem_t *sem); +inline int psem_trywait(sem_t *sem) { + return sem_trywait(sem); +} + +inline int psem_post(sem_t *sem) { + return sem_post(sem); +} + #endif -- Gitblit v1.8.0