NAME¶
CK_COHORT_TRYLOCK
—
try to acquire cohort lock
LIBRARY¶
Concurrency Kit (libck, -lck)
SYNOPSIS¶
#include
<ck_cohort.h>
CK_COHORT_TRYLOCK
(
COHORT_NAME
cohort_name,
COHORT *cohort,
void
*global_trylock_context,
void
*local_trylock_context,
void
*lock_unlock_context);
DESCRIPTION¶
This call attempts to acquire both the local and global (if necessary) locks
from
cohort. It can only be used with cohort
types that were defined using the
CK_COHORT_TRYLOCK_PROTOTYPE(3) macro. The call
will not block and will return a bool that will evaluate to true iff the
cohort was successfully acquired.
global_trylock_context will be passed as the
second argument to the function that was provided as the
global_trylock_method argument to
CK_COHORT_TRYLOCK_PROTOTYPE if that method is called, and
local_trylock_context will be passed to the
function specified by
local_trylock_method.
If the global lock acquisition fails, then the cohort will immediately release
its local lock as well, and
local_unlock_context will be passed to the
function specified by
local_unlock_method
when this call is made.
SEE ALSO¶
ck_cohort(3),
CK_COHORT_PROTOTYPE(3),
CK_COHORT_TRYLOCK_PROTOTYPE(3),
CK_COHORT_INSTANCE(3),
CK_COHORT_INITIALIZER(3),
CK_COHORT_INIT(3),
CK_COHORT_LOCK(3),
CK_COHORT_UNLOCK(3),
CK_COHORT_LOCKED(3),
Additional information available at
http://concurrencykit.org/