CK_HS_PUT(3)
β¨ ck_hs_put(3) β¨
okay so bestie, welcome to CK_HS_PUT(3), the manual page for ck_hs_put β literally the "put this key in the hash set, but only if it's not already there" function π it lives in the Concurrency Kit (that's libck, link it with -lck) and it's about to be your new fave, no cap.
πΈ NAME πΈ
ck_hs_put β store unique key into a hash set π
π¦ LIBRARY π¦
Concurrency Kit (that's libck, and you link it with -lck) π
β¨ SYNOPSIS β¨
#include <ck_hs.h>
bool
ck_hs_put(ck_hs_t *hs, unsigned long hash, const void *key);
π DESCRIPTION π
so the ck_hs_put(3) function is gonna store the key that you pass in as the key argument into the hash set that hs points at, periodt. and the key you hand over is expected to have the hash value you passed as the hash argument β which btw you should have already generated earlier with the CK_HS_HASH(3) macro. like, that's the whole vibe. π
if the call to ck_hs_put(3) went well, then congrats, the key you specified in key is now successfully chillin' inside the hash set that hs points to π«Ά.
but bestie, listen β the function will fail if a key with a value equivalent to key is already present in the hash set. it does not replace, it does not overwrite, it simply says no π if what you actually wanted was replacement semantics, go look at the ck_hs_set(3) function instead, iykyk.
β RETURN VALUES β
upon successful completion, ck_hs_put(3) returns true π
and otherwise it returns false on failure π
π ERRORS π
behavior is undefined if key or hs are uninitialized π (like, not "it'll be fine" undefined, actually undefined, so don't).
the function will also return false if the hash set could not be enlarged to accomodate the key insertion π (yes, "accomodate", that's how the original spells it and we respect the original's choices).
π SEE ALSO π
ck_hs_init(3)ck_hs_move(3)ck_hs_destroy(3)CK_HS_HASH(3)ck_hs_iterator_init(3)ck_hs_next(3)ck_hs_put_unique(3)ck_hs_get(3)ck_hs_set(3)ck_hs_fas(3)ck_hs_remove(3)ck_hs_grow(3)ck_hs_rebuild(3)ck_hs_gc(3)ck_hs_count(3)ck_hs_reset(3)ck_hs_reset_size(3)ck_hs_stat(3)
additional information is available at http://concurrencykit.org/ π
and that's the whole page, bestie!! this one's from the Concurrency Kit source, dated September 17, 2012, and it's filed under CK_HS_PUT(3) π go put some unique keys in a hash set, you absolute icon ππβ¨
π¦ where this page comes from
- alpine 3.24: ck-doc 0.7.2-r1 Β· BSD-2-Clause AND Apache-2.0
- debian bookworm: libck-dev 0.7.1-10 Β· BSD-2-Clause
- debian trixie: libck-dev 0.7.2-6 Β· BSD-2-Clause
- epel 10: ck-devel 0.7.2-1.el10_1 Β· BSD-2-clause AND Apache-2.0 AND BSD-3-clause
- epel 9: ck-devel 0.7.0-10.el9 Β· BSD
- fedora 43: ck-devel 0.7.2-2.fc43 Β· BSD-2-clause AND Apache-2.0 AND BSD-3-clause
- fedora 43: ck-devel 0.7.2-2.fc43 Β· BSD-2-clause AND Apache-2.0 AND BSD-3-clause
- fedora 44: ck-devel 0.7.2-4.fc44 Β· BSD-2-clause AND Apache-2.0 AND BSD-3-clause
- fedora 44: ck-devel 0.7.2-4.fc44 Β· BSD-2-clause AND Apache-2.0 AND BSD-3-clause
- nixos 26.05: ck 0.7.2
- nixpkgs unstable: ck 0.7.2
- opensuse-leap 16.0: ck-devel 0.7.2-bp160.1.9 Β· Apache-2.0 AND BSD-2-Clause
- opensuse-leap 16.0: ck-devel 0.7.2-bp160.1.9 Β· Apache-2.0 AND BSD-2-Clause
- opensuse-leap 16.0: ck-devel 0.7.2-bp160.1.9 Β· Apache-2.0 AND BSD-2-Clause
- ubuntu jammy: libck-dev 0.7.1-6ubuntu2 Β· BSD-2-Clause
- ubuntu noble: libck-dev 0.7.1-13build1 Β· BSD-2-Clause
- ubuntu questing: libck-dev 0.7.2-5ubuntu1
- ubuntu resolute: libck-dev 0.7.2-5ubuntu2 Β· BSD-2-Clause
- ubuntu stonking: libck-dev 0.7.2-11 Β· BSD-2-Clause
- Copyright 2012-2013 Samy Al Bahra
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms