CK_PR_SUB(3)

πŸ’– ck_pr_sub(3) β€” atomic subtraction operations πŸ’–

okay bestie, welcome to the manual page for the ck_pr_sub crew πŸ’… this one lives in the Concurrency Kit (that's libck, link it with -lck) and it's literally the whole family of atomic subtraction operations. yes, the whole family. we have nine siblings and they're all iconic πŸ‘‘

the lineup, in order: ck_pr_sub_ptr, ck_pr_sub_double, ck_pr_sub_char, ck_pr_sub_uint, ck_pr_sub_int, ck_pr_sub_64, ck_pr_sub_32, ck_pr_sub_16, ck_pr_sub_8. memorize them, they're your new besties 🫢


✨ SYNOPSIS ✨

first, the vibe check β€” you gotta include the header:

#include <ck_pr.h>

then here's every single one of them, signatures exactly as they are, no notes:

void
ck_pr_sub_ptr(void *target, uintptr_t delta);

void
ck_pr_sub_double(double *target, double delta);

void
ck_pr_sub_char(char *target, char delta);

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

void
ck_pr_sub_int(int *target, int delta);

void
ck_pr_sub_64(uint64_t *target, uint64_t delta);

void
ck_pr_sub_32(uint32_t *target, uint32_t delta);

void
ck_pr_sub_16(uint16_t *target, uint16_t delta);

void
ck_pr_sub_8(uint8_t *target, uint8_t delta);

🌸 DESCRIPTION 🌸

so here's the tea πŸ“ the ck_pr_sub(3) family of functions atomically subtract the value specified by delta from the value pointed to by target.

that's it. that's the whole thing. no race conditions, no drama, just a subtraction that happens all at once like a main character entrance ✨


πŸ’« RETURN VALUES πŸ’«

ngl this family of functions does not have a return value. it's giving void. it does the thing and it leaves. no receipts, no follow-up text πŸ’€


πŸ‘‘ SEE ALSO πŸ‘‘

the whole friend group, fr fr:

and if you want even more lore, additional information is available at http://concurrencykit.org/ 🌈


okay that's the page!! this one's dated April 11, 2013, it's ck_pr_sub(3) from the Concurrency Kit crew, and yes you absolutely ate that read πŸ’… go subtract something atomically, bestie πŸ¦‹πŸ’œ

πŸ“¦ where this page comes from