18#ifndef LUMIERA_SECTIONLOCK_H
19#define LUMIERA_SECTIONLOCK_H
27 struct nobug_resource_user** handle,
28 const struct nobug_context ctx);
47 ENSURE (!self->lock,
"forgot to unlock");
57#define LUMIERA_SECTION_UNLOCK_(section) \
58 do if ((section)->lock) \
60 (section)->unlock((section)->lock, (section)->flag, \
61 &(section)->rh, NOBUG_CONTEXT); \
62 (section)->lock = NULL; \
void(* lumiera_sectionlock_unlock_fn)(void *, struct nobug_flag *flag, struct nobug_resource_user **handle, const struct nobug_context ctx)
static void lumiera_sectionlock_ensureunlocked(LumieraSectionlock self)
sectionlock used to manage the state of mutexes.
lumiera_sectionlock_unlock_fn unlock
NOBUG_IF_ALPHA(struct nobug_flag *flag)