CK_PR_OR(3)
π ck_pr_or(3) β the atomic bitwise-or besties
okay so welcome to the ck_pr_or(3) manual page, bestie, and lemme tell you, this family is so clean, it's giving "does one thing and does it flawlessly" β¨
πΈ NAME πΈ
ck_pr_or_ptr, ck_pr_or_char, ck_pr_or_uint, ck_pr_or_int, ck_pr_or_64, ck_pr_or_32, ck_pr_or_16, ck_pr_or_8 β atomic bitwise-or operations π«Ά
π LIBRARY π
Concurrency Kit (libck, -lck) β yes that's the whole vibe, link against it and you're golden π
β¨ SYNOPSIS β¨
#include <ck_pr.h>
void
ck_pr_or_ptr(void *target, uintptr_t delta);
void
ck_pr_or_char(char *target, char delta);
void
ck_pr_or_uint(unsigned int *target, unsigned int delta);
void
ck_pr_or_int(int *target, int delta);
void
ck_pr_or_64(uint64_t *target, uint64_t delta);
void
ck_pr_or_32(uint32_t *target, uint32_t delta);
void
ck_pr_or_16(uint16_t *target, uint16_t delta);
void
ck_pr_or_8(uint8_t *target, uint8_t delta);
likeβ¦ look at them. one for every size you could possibly need. chef's kiss π
π¦ DESCRIPTION π¦
okay so the ck_pr_or(3) family of functions atomically compute and store the result of a bitwise-or of the value pointed to by target and delta into the value pointed to by target. π«
that's it. that's the whole thing. it or's them, it stores it back into target, and it does the whole thing atomically so nobody else can sneak in and catch you mid-operation. no cap, that's the entire personality. π
π RETURN VALUES π
This family of functions does not have a return value. not me checking for a return value that was never there π β void is void, bestie, don't @ it.
π₯ SEE ALSO π₯
ck_pr_fence_load(3)ck_pr_fence_load_depends(3)ck_pr_fence_store(3)ck_pr_fence_memory(3)ck_pr_load(3)ck_pr_store(3)ck_pr_fas(3)ck_pr_faa(3)ck_pr_inc(3)ck_pr_dec(3)ck_pr_neg(3)ck_pr_not(3)ck_pr_add(3)ck_pr_sub(3)ck_pr_xor(3)ck_pr_and(3)ck_pr_cas(3)ck_pr_btc(3)ck_pr_bts(3)ck_pr_btr(3)
Additional information available at http://concurrencykit.org/ π
and that's the page, periodt π
this lil icon dropped on April 11, 2013 and lives in Concurrency Kit β go say hi to the whole ck_pr friend group, they ate fr fr πβ¨π¦
π¦ 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 2013 Samy Al Bahra
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms