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