From 5026f256928cc3d3d6768faa63249bd343a4dd74 Mon Sep 17 00:00:00 2001
From: liuxiaolong <liuxiaolong@aiotlink.com>
Date: 星期二, 07 九月 2021 16:14:25 +0800
Subject: [PATCH] 调整defer C.BHFree的执行顺序
---
src/shm/hashtable.h | 19 +++++++++++++------
1 files changed, 13 insertions(+), 6 deletions(-)
diff --git a/src/shm/hashtable.h b/src/shm/hashtable.h
index e43029c..7bb6eac 100755
--- a/src/shm/hashtable.h
+++ b/src/shm/hashtable.h
@@ -5,15 +5,22 @@
#include <functional>
#include <set>
-#define MAPSIZE 100
+#define MAPSIZE 4096
+
+// 鍒涘缓Queue鏁伴噺鐨勪笂闄�
+#define QUEUE_COUNT_LIMIT 300
typedef struct hashtable_t
{
struct tailq_header_t* array[MAPSIZE];
int mutex;
+ int queueCount;
+ int currentKey; // 褰撳墠鍒嗛厤鐨刱ey
// int wlock;
// int cond;
// size_t readcnt;
+
+
} hashtable_t;
typedef void (*hashtable_foreach_cb)(int key, void *value);
@@ -21,16 +28,16 @@
void hashtable_init(hashtable_t *hashtable);
void hashtable_destroy(hashtable_t *hashtable);
void *hashtable_get(hashtable_t *hashtable, int key);
-void hashtable_put(hashtable_t *hashtable, int key, void *value);
+void hashtable_put(hashtable_t *hashtable, int key, void *value) ;
+bool hashtable_check_put(hashtable_t *hashtable, int key, void *value, bool overwrite) ;
+
void *hashtable_remove(hashtable_t *hashtable, int key);
void hashtable_removeall(hashtable_t *hashtable);
-
-int hashtable_lock(hashtable_t *hashtable);
-int hashtable_unlock(hashtable_t *hashtable);
+int hashtable_get_queue_count(hashtable_t *hashtable) ;
/**
* 閬嶅巻hash_table
* @demo
- * hashtable_foreach(&hashtable, [&](int key, void * value){
+ * hashtable_foreach(hashtable, [&](int key, void * value){
* printf("%d, %p\n", key, value);
* });
*
--
Gitblit v1.8.0