CK_PR_AND(3)

✨ ck_pr_and β€” atomic bitwise-and operations ✨

okay bestie, gather round πŸ’– so like, this is the manual for ck_pr_and(3), which lives in the Concurrency Kit library. it's a whole family of lil functions β€” ck_pr_and_ptr, ck_pr_and_char, ck_pr_and_uint, ck_pr_and_int, ck_pr_and_64, ck_pr_and_32, ck_pr_and_16, and ck_pr_and_8 β€” and they all do the same iconic thing: atomic bitwise-and. no cap. πŸ”₯


πŸ“š LIBRARY

Concurrency Kit (that's libck, and you link it with -lck 🫢)


🌸 SYNOPSIS 🌸

#include <ck_pr.h>

void
ck_pr_and_ptr(void *target, uintptr_t delta);

void
ck_pr_and_char(char *target, char delta);

void
ck_pr_and_uint(unsigned int *target, unsigned int delta);

void
ck_pr_and_int(int *target, int delta);

void
ck_pr_and_64(uint64_t *target, uint64_t delta);

void
ck_pr_and_32(uint32_t *target, uint32_t delta);

void
ck_pr_and_16(uint16_t *target, uint16_t delta);

void
ck_pr_and_8(uint8_t *target, uint8_t delta);

like, yes, there are eight of them and they're all basically siblings πŸ’… one per type, so you never have to think about widths. pick your type, pick your function, go.


πŸ’« DESCRIPTION πŸ’«

so here's the vibe: the ck_pr_and(3) family of functions atomically compute and store the result of a bitwise-and of the value pointed to by target and delta into the value pointed to by target.

okay let me say that again but slower because it's lowkey the whole point: it takes what's at target, ANDs it with delta, and writes the answer back into target. and it does all of that atomically β€” no other thread can peek at a half-finished in-between state. it's giving main character energy, honestly. πŸ‘‘

target is the pointer to the value getting ANDed and overwritten. delta is the value you're ANDing with it. that's it. that's the whole function. πŸŽ€


πŸ¦‹ RETURN VALUES πŸ¦‹

ngl, this family of functions does not have a return value. it returns nothing. void. empty. it just does the thing and leaves. πŸ’€ (the side effect is the whole personality, bestie.)


πŸ‘€ SEE ALSO

more lore is available at http://concurrencykit.org/ if you wanna go read the whole cinematic universe 🌈


and that's the page, bestie πŸ₯Ή this one was dated April 11, 2013 and it's the ck_pr_and(3) manual from Concurrency Kit β€” tysm for reading, go AND some bits atomically, you're gonna slay πŸ’–βœ¨πŸ«Ά

πŸ“¦ where this page comes from