From 5f246a2c098b663fa44d87bc5c9ac5c8f74bbcc1 Mon Sep 17 00:00:00 2001 From: wangzhengquan <wangzhengquan85@126.com> Date: 星期五, 26 二月 2021 14:04:39 +0800 Subject: [PATCH] update --- src/psem.h | 42 +++++++++++++++++++++--------------------- 1 files changed, 21 insertions(+), 21 deletions(-) diff --git a/src/psem.h b/src/psem.h index fb64dba..41b76e6 100644 --- a/src/psem.h +++ b/src/psem.h @@ -7,31 +7,31 @@ 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; + // 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; } 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; + // return sem_wait(sem); + int rv; + while ( (rv = sem_wait(sem)) == -1) { + if(errno == EINTR) + continue; + else { + return -1; + } + } + return 0; } inline int psem_trywait(sem_t *sem) { -- Gitblit v1.8.0