NAME¶
CK_COHORT_INIT
—
initialize instance of a cohort type
LIBRARY¶
Concurrency Kit (libck, -lck)
SYNOPSIS¶
#include
<ck_cohort.h>
CK_COHORT_INIT
(
COHORT_NAME
cohort_name,
COHORT *cohort,
void
*global_lock,
void
*local_lock,
unsigned int
pass_limit);
DESCRIPTION¶
Until a cohort instance is initialized using the CK_COHORT_INIT macro, any
operations involving it will have undefined behavior. After this macro has
been called, the cohort pointed to by the
cohort argument will use the lock pointed to
by
global_lock as its global lock and the
lock pointed to by
local_lock as its local
lock.
The cohort will relinquish its global lock after
pass_limit consecutive acquisitions of its
local lock, even if there are other threads waiting. If you are unsure of a
value to use for the
pass_limit argument, you
should use CK_COHORT_DEFAULT_LOCAL_PASS_LIMIT.
SEE ALSO¶
ck_cohort(3),
CK_COHORT_PROTOTYPE(3),
CK_COHORT_TRYLOCK_PROTOTYPE(3),
CK_COHORT_INSTANCE(3),
CK_COHORT_INITIALIZER(3),
CK_COHORT_LOCK(3),
CK_COHORT_UNLOCK(3),
CK_COHORT_LOCKED(3),
CK_COHORT_TRYLOCK(3),
Additional information available at
http://concurrencykit.org/