From b984dac55bdd0a5b694837fb8fb2ceb07ce9808f Mon Sep 17 00:00:00 2001
From: fujuntang <fujuntang@smartai.com>
Date: 星期二, 07 九月 2021 11:25:57 +0800
Subject: [PATCH] resize the buf allocation to dynamic buf.

---
 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