From 5026f256928cc3d3d6768faa63249bd343a4dd74 Mon Sep 17 00:00:00 2001
From: liuxiaolong <liuxiaolong@aiotlink.com>
Date: 星期二, 07 九月 2021 16:14:25 +0800
Subject: [PATCH] 调整defer C.BHFree的执行顺序
---
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