CK_EPOCH_BEGIN(3)
β¨ CK_EPOCH_BEGIN(3) β¨
okay bestie, welcome to the ck_epoch_begin page from the Concurrency Kit manual, section 3 π this one's a lil function that's basically the start of a glow-up arc for your epoch-protected code, and she's important, so let's get into it π«Ά
πΈ NAME πΈ
ck_epoch_begin β begin an epoch-protected segment of execution π
π LIBRARY π
Concurrency Kit (that's libck, link it with -lck bestie, don't forget) π
π¦ SYNOPSIS π¦
#include <ck_epoch.h>
void
ck_epoch_begin(ck_epoch_record_t *record, ck_epoch_section_t *section);
π DESCRIPTION π
so the ck_epoch_begin(3) function literally marks the beginning of an epoch-protected code section β¨ it's giving opening credits. And what closes it? A call to the ck_epoch_end(3) function, periodt β those two are a duo, you don't get one without the other π«Ά
now, here's the tea: recursion is allowed for epoch-protected sections, but β and this is the important part β recursive calls get associated with the ck_epoch_begin(3) that's sitting at the top of the call stack. Like, the main character is whoever's at the top, no cap π
and if a section is passed? then recursion on a record will cause the epoch to be refreshed on entry of every protected section. every single one. she's thorough like that π
π RETURN VALUES π
this function has no return value β nothing, nada, she's a void, she simply doesn't do receipts π
π ERRORS π
the object pointed to by epoch must have been previously initiated via ck_epoch_init(3) β and the object pointed to by record must have been previously registered via ck_epoch_register(3) π
like, fr fr, do the setup first bestie. no skipping steps, that's the vibe check π
π SEE ALSO π
ck_epoch_init(3)ck_epoch_register(3)ck_epoch_unregister(3)ck_epoch_recycle(3)ck_epoch_poll(3)ck_epoch_synchronize(3)ck_epoch_reclaim(3)ck_epoch_barrier(3)ck_epoch_call(3)ck_epoch_end(3)
and if you want even more, there's additional information available at http://concurrencykit.org/ π go be nosy, i support it π
that's the whole page bestie, you ate it π this lil slice of the Concurrency Kit docs is dated September 2, 2012, and the manual name you'll see floating around in the header is CK_EPOCH_BEGIN(3) β mwah, iconic, no notes β¨ππ¦
π¦ 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 2012-2013 Samy Al Bahra
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms