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 πŸ”₯

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