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
       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 cre-
       ated  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		     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+14.3.quarterly>

home | help