From 37a7bd95042c19d7334b099d50ac6dc8e07e4b4e Mon Sep 17 00:00:00 2001
From: wangzhengquan <wangzhengquan85@126.com>
Date: 星期二, 07 七月 2020 16:40:51 +0800
Subject: [PATCH] update

---
 squeue/include/lock_free_queue.h |   13 +++++++++----
 1 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/squeue/include/lock_free_queue.h b/squeue/include/lock_free_queue.h
index c8a672c..8245d8e 100644
--- a/squeue/include/lock_free_queue.h
+++ b/squeue/include/lock_free_queue.h
@@ -22,6 +22,9 @@
 template <typename ELEM_T>
 class ArrayLockFreeQueue;
 
+template <typename ELEM_T>
+class LinkedLockFreeQueue;
+
 
 /// @brief Lock-free queue based on a circular array
 /// No allocation of extra memory for the nodes handling is needed, but it has 
@@ -67,10 +70,12 @@
     template <typename T> class Q_TYPE = ArrayLockFreeQueue >
 class LockFreeQueue
 {
+
 private:
     int slots;
     int items;
-public:    
+public:
+    std::atomic_uint reference;    
     /// @brief constructor of the class
     LockFreeQueue(size_t qsize = LOCK_FREE_Q_DEFAULT_SIZE);
     
@@ -129,14 +134,13 @@
     LockFreeQueue<ELEM_T, Q_TYPE>(const LockFreeQueue<ELEM_T, Q_TYPE> &a_src);
 };
 
- 
 
 template <
     typename ELEM_T, 
     template <typename T> class Q_TYPE>
-LockFreeQueue<ELEM_T, Q_TYPE>::LockFreeQueue(size_t qsize):
-    m_qImpl(qsize)
+LockFreeQueue<ELEM_T, Q_TYPE>::LockFreeQueue(size_t qsize): reference(0), m_qImpl(qsize)
 {
+// std::cout << "LockFreeQueue init reference=" << reference << std::endl;
     slots = SemUtil::get(IPC_PRIVATE, qsize);
     items = SemUtil::get(IPC_PRIVATE, 0);
 }
@@ -146,6 +150,7 @@
     template <typename T> class Q_TYPE>
 LockFreeQueue<ELEM_T, Q_TYPE>::~LockFreeQueue()
 {
+    std::cerr << "LockFreeQueue desctroy" << std::endl;
     SemUtil::remove(slots);
     SemUtil::remove(items);
 }

--
Gitblit v1.8.0