From 37989e0300c20cd65a4d4a3c49eeaea2122ddf9e Mon Sep 17 00:00:00 2001 From: wangzhengquan <wangzhengquan85@126.com> Date: 星期一, 20 七月 2020 10:28:02 +0800 Subject: [PATCH] update --- queue/hashtable.h | 15 +++++++++++++-- 1 files changed, 13 insertions(+), 2 deletions(-) diff --git a/queue/hashtable.h b/queue/hashtable.h index 73c1729..726a5bc 100755 --- a/queue/hashtable.h +++ b/queue/hashtable.h @@ -2,22 +2,33 @@ #define __HASHTABLE_H__ #include <sys/queue.h> -//#include "queue.h" +#include <set> #define MAPSIZE 100 typedef struct hashtable_t { struct tailq_header_t* array[MAPSIZE]; + int mutex; + int wlock; + int cond; + size_t readcnt; } hashtable_t; +typedef void (*hashtable_foreach_cb)(int key, void *value); void hashtable_init(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); void *hashtable_remove(hashtable_t *hashtable, int key); void hashtable_removeall(hashtable_t *hashtable); +void hashtable_foreach(hashtable_t *hashtable, hashtable_foreach_cb cb); + void hashtable_printall(hashtable_t *hashtable); + +int hashtable_alloc_key(hashtable_t *hashtable); + +std::set<int> * hashtable_keyset(hashtable_t *hashtable) ; #endif -- Gitblit v1.8.0