uniq_skiplist.[hc]: init function add parameter: allocator_use_lock
parent
797f4e08b8
commit
df4fdfcab7
3
HISTORY
3
HISTORY
|
|
@ -1,6 +1,7 @@
|
|||
|
||||
Version 1.51 2021-05-18
|
||||
Version 1.51 2021-05-20
|
||||
* fast_mblock.[hc]: support batch alloc and batch free
|
||||
* uniq_skiplist.[hc]: init function add parameter: allocator_use_lock
|
||||
|
||||
Version 1.50 2021-05-11
|
||||
* add function is_digital_string
|
||||
|
|
|
|||
|
|
@ -179,6 +179,12 @@ typedef struct
|
|||
char patch;
|
||||
} Version;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char **strs;
|
||||
int count;
|
||||
} str_ptr_array_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char *key;
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ int uniq_skiplist_init_ex2(UniqSkiplistFactory *factory,
|
|||
const int max_level_count, skiplist_compare_func compare_func,
|
||||
uniq_skiplist_free_func free_func, const int alloc_skiplist_once,
|
||||
const int min_alloc_elements_once, const int delay_free_seconds,
|
||||
const bool bidirection)
|
||||
const bool bidirection, const bool allocator_use_lock)
|
||||
{
|
||||
const int64_t alloc_elements_limit = 0;
|
||||
char name[64];
|
||||
|
|
@ -105,7 +105,8 @@ int uniq_skiplist_init_ex2(UniqSkiplistFactory *factory,
|
|||
sizeof(UniqSkiplistNode *) * (i + 1 + extra_links_count);
|
||||
if ((result=fast_mblock_init_ex1(factory->node_allocators + i,
|
||||
name, element_size, alloc_elements_once,
|
||||
alloc_elements_limit, NULL, NULL, false)) != 0)
|
||||
alloc_elements_limit, NULL, NULL,
|
||||
allocator_use_lock)) != 0)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
|
@ -117,7 +118,8 @@ int uniq_skiplist_init_ex2(UniqSkiplistFactory *factory,
|
|||
if ((result=fast_mblock_init_ex1(&factory->skiplist_allocator,
|
||||
"skiplist", sizeof(UniqSkiplist),
|
||||
alloc_skiplist_once > 0 ? alloc_skiplist_once :
|
||||
4 * 1024, alloc_elements_limit, NULL, NULL, false)) != 0)
|
||||
4 * 1024, alloc_elements_limit, NULL, NULL,
|
||||
allocator_use_lock)) != 0)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ extern "C" {
|
|||
delay_free_seconds) \
|
||||
uniq_skiplist_init_ex2(factory, max_level_count, compare_func, \
|
||||
free_func, alloc_skiplist_once, min_alloc_elements_once, \
|
||||
delay_free_seconds, false)
|
||||
delay_free_seconds, false, false)
|
||||
|
||||
#define uniq_skiplist_init(factory, max_level_count, compare_func, free_func) \
|
||||
uniq_skiplist_init_ex(factory, max_level_count, \
|
||||
|
|
@ -102,7 +102,7 @@ int uniq_skiplist_init_ex2(UniqSkiplistFactory *factory,
|
|||
const int max_level_count, skiplist_compare_func compare_func,
|
||||
uniq_skiplist_free_func free_func, const int alloc_skiplist_once,
|
||||
const int min_alloc_elements_once, const int delay_free_seconds,
|
||||
const bool bidirection);
|
||||
const bool bidirection, const bool allocator_use_lock);
|
||||
|
||||
void uniq_skiplist_destroy(UniqSkiplistFactory *factory);
|
||||
|
||||
|
|
@ -118,12 +118,13 @@ static inline int uniq_skiplist_init_pair_ex(UniqSkiplistPair *pair,
|
|||
const int delay_free_seconds, const bool bidirection)
|
||||
{
|
||||
const int alloc_skiplist_once = 1;
|
||||
const bool allocator_use_lock = false;
|
||||
int result;
|
||||
|
||||
if ((result=uniq_skiplist_init_ex2(&pair->factory, max_level_count,
|
||||
compare_func, free_func, alloc_skiplist_once,
|
||||
min_alloc_elements_once, delay_free_seconds,
|
||||
bidirection)) != 0)
|
||||
bidirection, allocator_use_lock)) != 0)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue