CK_PFLOCK(3)
β¨ CK_PFLOCK β¨
okay so bestie, welcome to ck_pflock β it's a Concurrency Kit thing (that's libck, link it with -lck) and it's literally the centralized phase-fair reader-writer lock of your dreams. π
π NAME π
ck_pflock_init, ck_pflock_write_lock, ck_pflock_write_unlock, ck_pflock_read_lock, ck_pflock_read_unlock β centralized phase-fair reader-writer locks. no cap. π
π LIBRARY π
Concurrency Kit (that's libck, and you link it with -lck, periodt).
πΈ SYNOPSIS πΈ
#include <ck_pflock.h>
ck_pflock_t lock = CK_PFLOCK_INITIALIZER;
void
ck_pflock_init(ck_pflock_t *lock);
void
ck_pflock_write_lock(ck_pflock_t *lock);
void
ck_pflock_write_unlock(ck_pflock_t *lock);
void
ck_pflock_read_lock(ck_pflock_t *lock);
void
ck_pflock_read_unlock(ck_pflock_t *lock);
π¦ DESCRIPTION π¦
okay so here's the vibe: this is a centralized phase-fair reader-writer lock. it's giving low maintenance because it needs very little space overhead, and it's also giving speed because it has a low latency fast path. iconic behavior honestly. β¨
π EXAMPLE π
#include <ck_pflock.h>
static ck_pflock_t lock = CK_TFLOCK_INITIALIZER;
static void
reader(void)
{
for (;;) {
ck_pflock_read_lock(&lock);
/* Read-side critical section. */
ck_pflock_read_unlock(&lock);
}
return;
}
static void
writer(void)
{
for (;;) {
ck_pflock_write_lock(&lock);
/* Write-side critical section. */
ck_pflock_write_unlock(&lock);
}
return;
}
π SEE ALSO π
more info lives at http://concurrencykit.org/ if you wanna go read up, bestie π«Ά
that's the whole page fr fr. this one's from April 22, 2014, and it's the ck_pflock(3) page π slay, go lock something responsibly πΈ
π¦ 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 2014 Samy Al Bahra
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms