CK_HT_SET_SPMC(3) | Library Functions Manual | CK_HT_SET_SPMC(3) |
NAME
ck_ht_set_spmc
—
store key-value pair into hash table
LIBRARY
Concurrency Kit (libck, -lck)
SYNOPSIS
#include
<ck_ht.h>
bool
ck_ht_set_spmc
(ck_ht_t
*ht, ck_ht_hash_t
h, ck_ht_entry_t
*entry);
DESCRIPTION
The
ck_ht_set_spmc
()
function will store the key-value pair specified in the
entry argument in the hash table pointed to by the
ht argument. The key specified in
entry is expected to have the hash value specified by
the h argument.
If ht was created with CK_HT_MODE_BYTESTRING then entry must have been initialized with the ck_ht_entry_set(3) function. If ht was created with CK_HT_MODE_DIRECT then entry must have been initialized with the ck_ht_entry_set_direct(3) function.
It is expected that h was initialized with ck_ht_hash(3) if ht was created with CK_HT_MODE_BYTESTRING. If ht was initialized with CK_HT_MODE_DIRECT then it is expected that h was initialized with the ck_ht_hash_direct(3) function.
If the call to
ck_ht_set_spmc
()
was successful then the key-value pair in entry will
contain the previous key-value pair associated with the key originally
contained in the entry argument. If the operation was
unsuccessful then entry is unmodified.
This function is safe to call in the presence of concurrent ck_ht_get_spmc operations.
RETURN VALUES
Upon successful completion
ck_ht_set_spmc
() returns
true
and otherwise returns
false
on failure.
ERRORS
Behavior is undefined if entry or
ht are uninitialized. The function will return
false
if the hash table required to be grown but
failed while attempting to grow.
SEE ALSO
ck_ht_stat(3), ck_ht_init(3), ck_ht_destroy(3), ck_ht_hash(3), ck_ht_hash_direct(3), ck_ht_put_spmc(3), ck_ht_gc(3), ck_ht_get_spmc(3), ck_ht_grow_spmc(3), ck_ht_remove_spmc(3), ck_ht_reset_spmc(3), ck_ht_reset_size_spmc(3), ck_ht_count(3), ck_ht_entry_empty(3), ck_ht_entry_key_set(3), ck_ht_entry_key_set_direct(3), ck_ht_entry_key(3), ck_ht_entry_key_length(3), ck_ht_entry_value(3), ck_ht_entry_set(3), ck_ht_entry_set_direct(3), ck_ht_entry_key_direct(3), ck_ht_entry_value_direct(3), ck_ht_iterator_init(3), ck_ht_next(3)
Additional information available at http://concurrencykit.org/
March 29, 2012 |