1CK_HS_GC(3) BSD Library Functions Manual CK_HS_GC(3)
2
4 ck_hs_gc — perform maintenance on a hash set
5
7 Concurrency Kit (libck, -lck)
8
10 #include <ck_hs.h>
11
12 bool
13 ck_hs_gc(ck_hs_t *hs, unsigned long cycles, unsigned long seed);
14
16 The ck_hs_gc(3) function will perform various maintenance routines on the
17 hash set pointed to by hs, 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 set entries should be subject to
21 attempted maintenance. If cycles is 0, then maintenance is performed on
22 the complete hash set. The seed argument determines the start location of
23 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_hs_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_hs_init(3), ck_hs_move(3), ck_hs_destroy(3), CK_HS_HASH(3),
38 ck_hs_iterator_init(3), ck_hs_next(3), ck_hs_get(3), ck_hs_put(3),
39 ck_hs_put_unique(3), ck_hs_grow(3), ck_hs_rebuild(3), ck_hs_set(3),
40 ck_hs_fas(3), ck_hs_remove(3), ck_hs_count(3), ck_hs_reset(3),
41 ck_hs_reset_size(3), ck_hs_stat(3)
42
43 Additional information available at http://concurrencykit.org/
44
45 December 17, 2013