From 6da3e92dab82554db8492d2bd7981ecd9ef3fd65 Mon Sep 17 00:00:00 2001 From: wangzhengquan <wangzhengquan85@126.com> Date: 星期四, 23 七月 2020 15:57:34 +0800 Subject: [PATCH] sycronized --- src/queue/include/shm_queue.h | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/queue/include/shm_queue.h b/src/queue/include/shm_queue.h index 394545b..30e2e28 100644 --- a/src/queue/include/shm_queue.h +++ b/src/queue/include/shm_queue.h @@ -2,12 +2,11 @@ #define __SHM_QUEUE_H__ #include "usg_common.h" -#include "mm.h" #include "hashtable.h" #include "lock_free_queue.h" #include "logger_factory.h" #include "shm_allocator.h" - +#include "sem_util.h" // default Queue size // #define LOCK_FREE_Q_DEFAULT_SIZE 16 @@ -98,6 +97,7 @@ template < typename ELEM_T > SHMQueue<ELEM_T>::~SHMQueue() { + SemUtil::dec( queue->mutex); queue->reference--; LoggerFactory::getLogger().debug("SHMQueue destructor reference===%d", queue->reference.load()); if(queue->reference.load() == 0) { @@ -105,7 +105,10 @@ hashtable_t *hashtable = mm_get_hashtable(); hashtable_remove(hashtable, KEY); LoggerFactory::getLogger().debug("SHMQueue destructor delete queue"); + } else { + SemUtil::inc(queue->mutex); } + } template < typename ELEM_T > -- Gitblit v1.8.0