From 18705acc13f78ac65458b3dd832545e62fbc9172 Mon Sep 17 00:00:00 2001
From: wangzhengquan <wangzhengquan85@126.com>
Date: 星期一, 08 二月 2021 10:44:29 +0800
Subject: [PATCH] update

---
 src/shm/shm_mm_wrapper.cpp |   22 +++++++++++++---------
 1 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/src/shm/shm_mm_wrapper.cpp b/src/shm/shm_mm_wrapper.cpp
index 92350c8..6560f83 100644
--- a/src/shm/shm_mm_wrapper.cpp
+++ b/src/shm/shm_mm_wrapper.cpp
@@ -4,6 +4,7 @@
 #include "lock_free_queue.h"
 #include "shm_socket.h"
 
+#define BUFFER_TIME 10
 void shm_mm_wrapper_init(int size) {
 	mem_pool_init(size);
 }
@@ -16,8 +17,6 @@
 	return mm_alloc_key();
 }
 
-
-
 //鍒犻櫎鍖呭惈鍦╧eys鍐呯殑queue
 int shm_mm_wrapper_remove_keys(int keys[], int length) {
   hashtable_t *hashtable = mm_get_hashtable();
@@ -29,9 +28,12 @@
     if(mqueue == NULL) {
     	continue;
     }
-    delete mqueue;
-    hashtable_remove(hashtable, keys[i]);
-    count++;
+    if(difftime(time(NULL), mqueue->getCreateTime()) > BUFFER_TIME ) {
+      delete mqueue;
+      hashtable_remove(hashtable, keys[i]);
+      count++;
+    }
+    
   }
   return count;
 }
@@ -57,10 +59,12 @@
     if (!found && *keyItr > 100) {
       // 閿�姣佸叡浜唴瀛樼殑queue
       mqueue = (LockFreeQueue<shm_packet_t> *)hashtable_get(hashtable, *keyItr);
-
-      delete mqueue;
-      hashtable_remove(hashtable, *keyItr);
-      count++;
+      if(difftime(time(NULL), mqueue->getCreateTime()) > BUFFER_TIME ) {
+        delete mqueue;
+        hashtable_remove(hashtable, *keyItr);
+        count++;
+      }
+     
     }
   }
   delete keyset;

--
Gitblit v1.8.0