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 |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/src/queue/include/shm_queue.h b/src/queue/include/shm_queue.h
index d853774..30e2e28 100644
--- a/src/queue/include/shm_queue.h
+++ b/src/queue/include/shm_queue.h
@@ -6,7 +6,7 @@
 #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
  
@@ -97,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) {
@@ -104,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