Provided by: libck-dev_0.6.0-1.3_amd64 bug


     ck_rhs_init — initialize a hash set


     Concurrency Kit (libck, -lck)


     #include <ck_rhs.h>

     typedef unsigned long
     ck_rhs_hash_cb_t(const void *key, unsigned long seed);

     typedef bool
     ck_rhs_compare_cb_t(const void *c1, const void *c2);

     ck_rhs_init(ck_rhs_t *hs, unsigned int mode, ck_rhs_hash_cb_t *hash_function,
         ck_rhs_compare_cb_t *compare, struct ck_malloc *allocator, unsigned long capacity,
         unsigned long seed);


     The ck_rhs_init() function initializes the hash set pointed to by the hs pointer.

     The argument mode specifies the type of key-value pairs to be stored in the hash set as well
     as the expected concurrent access model.  The value of mode consists of a bitfield of one of
     the following:

             The hash set is meant to store pointers to objects. This provides a hint that only
             CK_MD_VMA_BITS are necessary to encode the key argument. Any unused pointer bits are
             leveraged for internal optimizations.

             The hash set is meant to directly store key values and that all bits of the key are
             used to encode values.

             Optimize read operations over put/delete.

     The concurrent access model is specified by:

             The hash set should allow for concurrent readers in the presence of a single writer.

             The hash set should allow for concurrent readers in the presence of concurrent
             writers. This is currently unsupported.

     The developer is free to specify additional workload hints.  These hints are one of:

The argument hash_function is a mandatory pointer to a user-specified hash function.  A user-
specified hash function takes two arguments. The key argument is a pointer to a key. The seed
The compare argument is an optional pointer to a user-specified key comparison function. If NULL

The allocator argument is a pointer to a structure containing malloc and free function pointers
The argument capacity represents the initial number of keys the hash set is expected to contain.
memory than necessary to contain the number of entries capacity specifies.

The argument seed specifies the initial seed used by the underlying hash function.  The user is


     Upon successful completion ck_rhs_init() returns a value of true and otherwise returns a
     value of false to indicate an error.


     The behavior of ck_rhs_init() is undefined if hs is not a pointer to a ck_rhs_t object.


     ck_rhs_move(3), ck_rhs_destroy(3), CK_RHS_HASH(3), ck_rhs_iterator_init(3), ck_rhs_next(3),
     ck_rhs_get(3), ck_rhs_put(3), ck_rhs_put_unique(3), ck_rhs_set(3), ck_rhs_fas(3),
     ck_rhs_remove(3), ck_rhs_grow(3), ck_rhs_rebuild(3), ck_rhs_gc(3), ck_rhs_count(3),
     ck_rhs_reset(3), ck_rhs_reset_size(3), ck_rhs_stat(3)

     Additional information available at

                                        September 17, 2012