18 #ifndef LUMIERA_SECTIONLOCK_H 19 #define LUMIERA_SECTIONLOCK_H 26 (*lumiera_sectionlock_unlock_fn)(
void*,
struct nobug_flag* flag,
27 struct nobug_resource_user** handle,
28 const struct nobug_context ctx);
36 lumiera_sectionlock_unlock_fn unlock;
37 NOBUG_IF_ALPHA(
struct nobug_flag* flag);
45 lumiera_sectionlock_ensureunlocked (LumieraSectionlock
self)
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; \ sectionlock used to manage the state of mutexes.