From 01e202b60cc8aceb65fd6c82949e2a2b08142f8c Mon Sep 17 00:00:00 2001 From: wangzhengquan <wangzhengquan85@126.com> Date: 星期一, 18 一月 2021 10:44:50 +0800 Subject: [PATCH] ADD EBUS_NET --- src/queue/lock_free_queue.h | 16 ++++++++++------ 1 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/queue/lock_free_queue.h b/src/queue/lock_free_queue.h index 70b8ef1..924537f 100644 --- a/src/queue/lock_free_queue.h +++ b/src/queue/lock_free_queue.h @@ -1,3 +1,6 @@ +/** + * encapsulate array_lock_free_queue, add semphore. populate in kernal space. + */ #ifndef __LOCK_FREE_QUEUE_H__ #define __LOCK_FREE_QUEUE_H__ @@ -300,7 +303,7 @@ int LockFreeQueue<ELEM_T, Allocator, Q_TYPE>::pop(ELEM_T &a_data) { -// LoggerFactory::getLogger()->debug("==================LockFreeQueue pop before\n"); + // LoggerFactory::getLogger()->debug("==================LockFreeQueue pop before\n"); if (sem_wait(&items) == -1) { LoggerFactory::getLogger()->error(errno, "LockFreeQueue pop"); return errno; @@ -343,19 +346,20 @@ template <typename T, typename AT> class Q_TYPE> int LockFreeQueue<ELEM_T, Allocator, Q_TYPE>::pop_timeout(ELEM_T &a_data, struct timespec * ts) { -// LoggerFactory::getLogger()->debug("=================ts sec = %d, nsec = %ld \n", ts->tv_sec, ts->tv_nsec ); - // struct timespec timeout_tmp = {1, 0}; + // LoggerFactory::getLogger()->debug("==================LockFreeQueue pop_timeout before\n"); struct timespec timeout = PXSemUtil::calc_sem_timeout(ts); -// LoggerFactory::getLogger()->debug("================== timeout before sec = %d, nsec = %ld \n", timeout.tv_sec, timeout.tv_nsec ); while (sem_timedwait(&items, &timeout) == -1) { - if (errno == ETIMEDOUT) + // LoggerFactory::getLogger()->error(errno, "1 LockFreeQueue pop_timeout %d %d", errno, ETIMEDOUT); + if (errno == ETIMEDOUT) { + // LoggerFactory::getLogger()->error(errno, "2 LockFreeQueue pop_timeout %d %d", errno, EBUS_TIMEOUT); return EBUS_TIMEOUT; + } else if(errno == EINTR) continue; else { - LoggerFactory::getLogger()->error(errno, "LockFreeQueue pop_timeout %d", errno); + LoggerFactory::getLogger()->error(errno, "3 LockFreeQueue pop_timeout %d", errno); return errno; } } -- Gitblit v1.8.0