initialize a hash set
typedef unsigned long
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 concurrent access model is specified by:
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 argument is the initial seed associated with the hash set. This initial seed is specified by the user in ck_rhs_init(3).
The compare argument is an optional pointer to a user-specified key comparison function. If NULL is specified in this argument, then pointer equality will be used to determine key equality. A user-specified comparison function takes two arguments representing pointers to the objects being compared for equality. It is expected to return true if the keys are of equal value and false otherwise.
The allocator argument is a pointer to a structure containing malloc and free function pointers which respectively define the memory allocation and destruction functions to be used by the hash set being initialized.
The argument capacity represents the initial number of keys the hash set is expected to contain. This argument is simply a hint and the underlying implementation is free to allocate more or less 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 free to choose a value of their choice.
ck_rhs_init() returns a value
true and otherwise returns a value of
false to indicate an error.
ck_rhs_init() is undefined if
hs is not a pointer to a ck_rhs_t object.
Additional information available at http://concurrencykit.org/