---
name: "ck_hs_set"
section: "3"
platform: "linux"
package: "libck-dev"
version: "0.7.2-6"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/ck_hs_set"
---

# ck\_hs\_set(3)

store key into a hash set

## NAME

**ck\_hs\_set** – store key into a hash set

## LIBRARY

Concurrency Kit (libck, -lck)

## SYNOPSIS

**#include \<ck\_hs.h\>**

*bool*\

**ck\_hs\_set**(*ck\_hs\_t \*hs*, *unsigned long hash*, *const void \*key*, *void \*\*previous*);

## DESCRIPTION

The **ck\_hs\_set**(*3*) function will store the key specified by the *key* argument in the hash set pointed to by the *hs* argument. The key specified by *key* is expected to have the hash value specified by the *hash* argument (which was previously generated using the [CK\_HS\_HASH(3)](/CK_HS_HASH/3.md) macro).

If the call to **ck\_hs\_set**(*3*) was successful then the key specified by *key* was successfully stored in the hash set pointed to by *hs*. If the key already exists in the hash set, then it is replaced by *key* and the previous value is stored into the void pointer pointed to by the *previous* argument. If previous is set to NULL then *key* was not a replacement for an existing entry in the hash set.

## RETURN VALUES

Upon successful completion, **ck\_hs\_set**(*3*) returns true and otherwise returns false on failure.

## ERRORS

Behavior is undefined if *key* or *hs* are uninitialized. The function will also return false if the hash set could not be enlarged to accomodate key insertion.

## SEE ALSO

[ck\_hs\_init(3)](/ck_hs_init/3.md), [ck\_hs\_move(3)](/ck_hs_move/3.md), [ck\_hs\_destroy(3)](/ck_hs_destroy/3.md), [CK\_HS\_HASH(3)](/CK_HS_HASH/3.md), [ck\_hs\_iterator\_init(3)](/ck_hs_iterator_init/3.md), [ck\_hs\_next(3)](/ck_hs_next/3.md), [ck\_hs\_get(3)](/ck_hs_get/3.md), [ck\_hs\_put(3)](/ck_hs_put/3.md), [ck\_hs\_put\_unique(3)](/ck_hs_put_unique/3.md), [ck\_hs\_fas(3)](/ck_hs_fas/3.md), [ck\_hs\_remove(3)](/ck_hs_remove/3.md), [ck\_hs\_grow(3)](/ck_hs_grow/3.md), [ck\_hs\_gc(3)](/ck_hs_gc/3.md), [ck\_hs\_rebuild(3)](/ck_hs_rebuild/3.md), [ck\_hs\_count(3)](/ck_hs_count/3.md), [ck\_hs\_reset(3)](/ck_hs_reset/3.md), [ck\_hs\_reset\_size(3)](/ck_hs_reset_size/3.md), [ck\_hs\_stat(3)](/ck_hs_stat/3.md)

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