1CK_HT_SET_SPMC(3) BSD Library Functions Manual CK_HT_SET_SPMC(3)
2
4 ck_ht_set_spmc — store key-value pair into hash table
5
7 Concurrency Kit (libck, -lck)
8
10 #include <ck_ht.h>
11
12 bool
13 ck_ht_set_spmc(ck_ht_t *ht, ck_ht_hash_t h, ck_ht_entry_t *entry);
14
16 The ck_ht_set_spmc() function will store the key-value pair specified in
17 the entry argument in the hash table pointed to by the ht argument. The
18 key specified in entry is expected to have the hash value specified by
19 the h argument.
20
21 If ht was created with CK_HT_MODE_BYTESTRING then entry must have been
22 initialized with the ck_ht_entry_set(3) function. If ht was created with
23 CK_HT_MODE_DIRECT then entry must have been initialized with the
24 ck_ht_entry_set_direct(3) function.
25
26 It is expected that h was initialized with ck_ht_hash(3) if ht was cre‐
27 ated with CK_HT_MODE_BYTESTRING. If ht was initialized with
28 CK_HT_MODE_DIRECT then it is expected that h was initialized with the
29 ck_ht_hash_direct(3) function.
30
31 If the call to ck_ht_set_spmc() was successful then the key-value pair in
32 entry will contain the previous key-value pair associated with the key
33 originally contained in the entry argument. If the operation was unsuc‐
34 cessful then entry is unmodified.
35
36 This function is safe to call in the presence of concurrent
37 ck_ht_get_spmc operations.
38
40 Upon successful completion ck_ht_set_spmc() returns true and otherwise
41 returns false on failure.
42
44 Behavior is undefined if entry or ht are uninitialized. The function will
45 return false if the hash table required to be grown but failed while
46 attempting to grow.
47
49 ck_ht_stat(3), ck_ht_init(3), ck_ht_destroy(3), ck_ht_hash(3),
50 ck_ht_hash_direct(3), ck_ht_put_spmc(3), ck_ht_gc(3), ck_ht_get_spmc(3),
51 ck_ht_grow_spmc(3), ck_ht_remove_spmc(3), ck_ht_reset_spmc(3),
52 ck_ht_reset_size_spmc(3), ck_ht_count(3), ck_ht_entry_empty(3),
53 ck_ht_entry_key_set(3), ck_ht_entry_key_set_direct(3),
54 ck_ht_entry_key(3), ck_ht_entry_key_length(3), ck_ht_entry_value(3),
55 ck_ht_entry_set(3), ck_ht_entry_set_direct(3), ck_ht_entry_key_direct(3),
56 ck_ht_entry_value_direct(3), ck_ht_iterator_init(3), ck_ht_next(3)
57
58 Additional information available at http://concurrencykit.org/
59
60 March 29, 2012