table of contents
        
      
      
    | CK_HT_PUT_SPMC(3) | Library Functions Manual | CK_HT_PUT_SPMC(3) | 
NAME¶
ck_ht_put_spmc —
    store unique key-value pair into hash table
LIBRARY¶
Concurrency Kit (libck, -lck)
SYNOPSIS¶
#include
  <ck_ht.h>
bool
  
  ck_ht_put_spmc(ck_ht_t
    *ht, ck_ht_hash_t
    h, ck_ht_entry_t
    *entry);
DESCRIPTION¶
The
    ck_ht_put_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_put_spmc()
    was successful then the key-value pair in entry was
    successfully stored in the hash table pointed to by ht
    and will fail if the key specified in entry already
    exists with-in the hash table. Replacement semantics are provided by the
    ck_ht_set_spmc(3) function.
This function is safe to call in the presence of concurrent ck_ht_get_spmc(3) operations.
RETURN VALUES¶
Upon successful completion
    ck_ht_put_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 or if the key specified in
    entry was already present in the hash table.
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_set_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 |