Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
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 ini-
     tialized  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_en-
     try_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  re-
     turns 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  at-
     tempting  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_re-
     set_size_spmc(3),	   ck_ht_count(3),    ck_ht_entry_empty(3),    ck_ht_en-
     try_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_di-
     rect(3), ck_ht_iterator_init(3), ck_ht_next(3)

     Additional information available at http://concurrencykit.org/

				 March 29, 2012 	       CK_HT_PUT_SPMC(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=ck_ht_put_spmc&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help