1CK_HT_PUT_SPMC(3)        BSD Library Functions Manual        CK_HT_PUT_SPMC(3)
2

NAME

4     ck_ht_put_spmc — store unique key-value pair into hash table
5

LIBRARY

7     Concurrency Kit (libck, -lck)
8

SYNOPSIS

10     #include <ck_ht.h>
11
12     bool
13     ck_ht_put_spmc(ck_ht_t *ht, ck_ht_hash_t h, ck_ht_entry_t *entry);
14

DESCRIPTION

16     The ck_ht_put_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_put_spmc() was successful then the key-value pair in
32     entry was successfully stored in the hash table pointed to by ht and will
33     fail if the key specified in entry already exists with-in the hash table.
34     Replacement semantics are provided by the ck_ht_set_spmc(3) function.
35
36     This function is safe to call in the presence of concurrent
37     ck_ht_get_spmc(3) operations.
38

RETURN VALUES

40     Upon successful completion ck_ht_put_spmc() returns true and otherwise
41     returns false on failure.
42

ERRORS

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 or if the key specified in entry was already present
47     in the hash table.
48

SEE ALSO

50     ck_ht_stat(3), ck_ht_init(3), ck_ht_destroy(3), ck_ht_hash(3),
51     ck_ht_hash_direct(3), ck_ht_set_spmc(3), ck_ht_gc(3), ck_ht_get_spmc(3),
52     ck_ht_grow_spmc(3), ck_ht_remove_spmc(3), ck_ht_reset_spmc(3),
53     ck_ht_reset_size_spmc(3), ck_ht_count(3), ck_ht_entry_empty(3),
54     ck_ht_entry_key_set(3), ck_ht_entry_key_set_direct(3),
55     ck_ht_entry_key(3), ck_ht_entry_key_length(3), ck_ht_entry_value(3),
56     ck_ht_entry_set(3), ck_ht_entry_set_direct(3), ck_ht_entry_key_direct(3),
57     ck_ht_entry_value_direct(3), ck_ht_iterator_init(3), ck_ht_next(3)
58
59     Additional information available at http://concurrencykit.org/
60
61                                March 29, 2012
Impressum