From e1b1fb4eb197a157809d6b6f4b0cfd8aa03bba60 Mon Sep 17 00:00:00 2001
From: wangzhengquan <wangzhengquan85@126.com>
Date: 星期三, 29 七月 2020 17:45:59 +0800
Subject: [PATCH] rm .idea
---
src/queue/include/lock_free_queue.h | 19 +++++++++++++------
1 files changed, 13 insertions(+), 6 deletions(-)
diff --git a/src/queue/include/lock_free_queue.h b/src/queue/include/lock_free_queue.h
index f34079f..25a3392 100644
--- a/src/queue/include/lock_free_queue.h
+++ b/src/queue/include/lock_free_queue.h
@@ -78,7 +78,7 @@
int items;
public:
- // int mutex;
+ int mutex;
LockFreeQueue(size_t qsize = LOCK_FREE_Q_DEFAULT_SIZE);
/// @brief destructor of the class.
@@ -117,7 +117,7 @@
/// @return true if the element was inserted in the queue. False if the queue was full
bool push(const ELEM_T &a_data);
bool push_nowait(const ELEM_T &a_data);
- bool push_timeout(const ELEM_T &a_data, struct timespec * timeout);
+ bool push_timeout(const ELEM_T &a_data, const struct timespec * timeout);
/// @brief pop the element at the head of the queue
/// @param a reference where the element in the head of the queue will be saved to
@@ -151,7 +151,7 @@
// std::cout << "LockFreeQueue init reference=" << reference << std::endl;
slots = SemUtil::get(IPC_PRIVATE, qsize);
items = SemUtil::get(IPC_PRIVATE, 0);
- // mutex = SemUtil::get(IPC_PRIVATE, 1);
+ mutex = SemUtil::get(IPC_PRIVATE, 1);
}
template <
@@ -163,6 +163,7 @@
LoggerFactory::getLogger().debug("LockFreeQueue desctroy");
SemUtil::remove(slots);
SemUtil::remove(items);
+ SemUtil::remove(mutex);
}
template <
@@ -199,13 +200,16 @@
template <typename T, typename AT> class Q_TYPE>
bool LockFreeQueue<ELEM_T, Allocator, Q_TYPE>::push(const ELEM_T &a_data)
{
+// printf("==================LockFreeQueue push before\n");
if (SemUtil::dec(slots) == -1) {
err_msg(errno, "LockFreeQueue push");
return false;
}
if ( m_qImpl.push(a_data) ) {
- SemUtil::inc(items);
+
+ SemUtil::inc(items);
+// printf("==================LockFreeQueue push after\n");
return true;
}
return false;
@@ -240,8 +244,9 @@
typename ELEM_T,
typename Allocator,
template <typename T, typename AT> class Q_TYPE>
-bool LockFreeQueue<ELEM_T, Allocator, Q_TYPE>::push_timeout(const ELEM_T &a_data, struct timespec * timeout)
+bool LockFreeQueue<ELEM_T, Allocator, Q_TYPE>::push_timeout(const ELEM_T &a_data, const struct timespec * timeout)
{
+
if (SemUtil::dec_timeout(slots, timeout) == -1) {
if (errno == EAGAIN)
@@ -269,13 +274,15 @@
template <typename T, typename AT> class Q_TYPE>
bool LockFreeQueue<ELEM_T, Allocator, Q_TYPE>::pop(ELEM_T &a_data)
{
+// printf("==================LockFreeQueue pop before\n");
if (SemUtil::dec(items) == -1) {
err_msg(errno, "LockFreeQueue pop");
return false;
}
if (m_qImpl.pop(a_data)) {
- SemUtil::inc(slots);
+ SemUtil::inc(slots);
+// printf("==================LockFreeQueue pop after\n");
return true;
}
return false;
--
Gitblit v1.8.0