From 8df2b63c21d0aabaa894930e3ab1ea63c49d47ff Mon Sep 17 00:00:00 2001
From: wangzhengquan <wangzhengquan85@126.com>
Date: 星期三, 13 一月 2021 17:54:51 +0800
Subject: [PATCH] fix bug invalid argument

---
 src/queue/lock_free_queue.h |   12 +++++++-----
 1 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/queue/lock_free_queue.h b/src/queue/lock_free_queue.h
index 3914b85..e1429eb 100644
--- a/src/queue/lock_free_queue.h
+++ b/src/queue/lock_free_queue.h
@@ -262,12 +262,12 @@
 int LockFreeQueue<ELEM_T, Allocator, Q_TYPE>::push_timeout(const ELEM_T &a_data, const struct timespec * ts)
 {
      
-
+    int rv;
     struct timespec timeout = PXSemUtil::calc_sem_timeout(ts);
   // LoggerFactory::getLogger()->debug("==================LockFreeQueue push_timeout before tv_sec=%d, tv_nsec=%ld", 
   //   timeout.tv_sec, timeout.tv_nsec);
 
-    while (sem_timedwait(&slots, &timeout) == -1) {
+    while ( sem_timedwait(&slots, &timeout) == -1) {
     //     LoggerFactory::getLogger()->debug("==================LockFreeQueue push_timeout before tv_sec=%d, tv_nsec=%ld, ETIMEDOUT=%d, errno=%d\n", 
     // timeout.tv_sec, timeout.tv_nsec, ETIMEDOUT, errno);
 
@@ -343,9 +343,11 @@
     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("==================LockFreeQueue pop_timeout before\n");
+// LoggerFactory::getLogger()->debug("=================ts sec = %d, nsec = %ld \n", ts->tv_sec,  ts->tv_nsec );
 
+    // struct timespec timeout_tmp = {1, 0};
     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)
@@ -353,8 +355,8 @@
         else if(errno == EINTR)
             continue;
         else {
-          LoggerFactory::getLogger()->error(errno, "LockFreeQueue pop_timeout");
-          return -1;
+          // LoggerFactory::getLogger()->error(errno, "LockFreeQueue pop_timeout %d", errno);
+          return errno;
         }
     }
 

--
Gitblit v1.8.0