1CK_HT_GC(3) BSD Library Functions Manual CK_HT_GC(3)
2
4 ck_ht_gc — perform maintenance on a hash table
5
7 Concurrency Kit (libck, -lck)
8
10 #include <ck_ht.h>
11
12 bool
13 ck_ht_gc(ck_ht_t *ht, unsigned long cycles, unsigned long seed);
14
16 The ck_ht_gc() function will perform various maintenance routines on the
17 hash table pointed to by ht, including defragmentation of probe sequences
18 with respect to tombstones and in the case that the delete workload hint
19 has been passed, recalculation of probe sequence bounds. The cycles argu‐
20 ment is used to indicate how many hash table entries should be subject to
21 attempted maintenance. If cycles is 0, then maintenance is performed on
22 the complete hash table. The seed argument determines the start location
23 of the maintenance process. If cycles is non-zero, it is recommended that
24 seed is some random value. If the delete hint has been passed, the func‐
25 tion will require an additional 12% of memory (with respect to existing
26 memory usage of the set), until operation completion.
27
29 Upon successful completion, ck_ht_gc(3) returns true and otherwise
30 returns false on failure due to memory allocation failure.
31
33 This function will only return false if there are internal memory alloca‐
34 tion failures.
35
37 ck_ht_count(3), ck_ht_stat(3), ck_ht_init(3), ck_ht_destroy(3),
38 ck_ht_hash(3), ck_ht_hash_direct(3), ck_ht_set_spmc(3),
39 ck_ht_put_spmc(3), ck_ht_get_spmc(3), ck_ht_grow_spmc(3),
40 ck_ht_remove_spmc(3), ck_ht_reset_size_spmc(3), ck_ht_reset_spmc(3),
41 ck_ht_entry_empty(3), ck_ht_entry_key_set(3),
42 ck_ht_entry_key_set_direct(3), ck_ht_entry_key(3),
43 ck_ht_entry_key_length(3), ck_ht_entry_value(3), ck_ht_entry_set(3),
44 ck_ht_entry_set_direct(3), ck_ht_entry_key_direct(3),
45 ck_ht_entry_value_direct(3), ck_ht_iterator_init(3), ck_ht_next(3)
46
47 Additional information available at http://concurrencykit.org/
48
49 December 18, 2013