From f42ddf22907c681d8b08eeceef160d4566dba437 Mon Sep 17 00:00:00 2001 From: wangzhengquan <wangzhengquan85@126.com> Date: 星期二, 07 七月 2020 18:05:06 +0800 Subject: [PATCH] update --- squeue/include/array_lock_free_queue.h | 20 ++++++-------------- 1 files changed, 6 insertions(+), 14 deletions(-) diff --git a/squeue/include/array_lock_free_queue.h b/squeue/include/array_lock_free_queue.h index 8bcf579..9a345e2 100644 --- a/squeue/include/array_lock_free_queue.h +++ b/squeue/include/array_lock_free_queue.h @@ -1,9 +1,9 @@ -#ifndef __LOCK_FREE_QUEUE_IMPL_MULTIPLE_PRODUCER_H__ -#define __LOCK_FREE_QUEUE_IMPL_MULTIPLE_PRODUCER_H__ +#ifndef __ARRAY_LOCK_FREE_QUEUE_IMPL_MULTIPLE_PRODUCER_H__ +#define __ARRAY_LOCK_FREE_QUEUE_IMPL_MULTIPLE_PRODUCER_H__ #include <assert.h> // assert() #include <sched.h> // sched_yield() - +#include "logger_factory.h" /// @brief implementation of an array based lock free queue with support for /// multiple producers @@ -65,18 +65,14 @@ /// @brief number of elements in the queue std::atomic<uint32_t> m_count; #endif - static int m_reference; - + + private: /// @brief disable copy constructor declaring it private ArrayLockFreeQueue<ELEM_T>(const ArrayLockFreeQueue<ELEM_T> &a_src); - }; - -template <typename ELEM_T> -int ArrayLockFreeQueue<ELEM_T>::m_reference = 0; template <typename ELEM_T> ArrayLockFreeQueue<ELEM_T>::ArrayLockFreeQueue(size_t qsize): @@ -89,7 +85,6 @@ #endif { m_theQueue = (ELEM_T*)mm_malloc(Q_SIZE * sizeof(ELEM_T)); - m_reference++; } @@ -97,10 +92,7 @@ ArrayLockFreeQueue<ELEM_T>::~ArrayLockFreeQueue() { std::cout << "destroy ArrayLockFreeQueue\n"; - m_reference--; - if(m_reference == 0) { - mm_free(m_theQueue); - } + mm_free(m_theQueue); } -- Gitblit v1.8.0