27 #ifndef LUMIERA_SECTIONLOCK_H 28 #define LUMIERA_SECTIONLOCK_H 35 (*lumiera_sectionlock_unlock_fn)(
void*,
struct nobug_flag* flag,
36 struct nobug_resource_user** handle,
37 const struct nobug_context ctx);
45 lumiera_sectionlock_unlock_fn unlock;
46 NOBUG_IF_ALPHA(
struct nobug_flag* flag);
54 lumiera_sectionlock_ensureunlocked (LumieraSectionlock
self)
56 ENSURE (!self->lock,
"forgot to unlock");
66 #define LUMIERA_SECTION_UNLOCK_(section) \ 67 do if ((section)->lock) \ 69 (section)->unlock((section)->lock, (section)->flag, \ 70 &(section)->rh, NOBUG_CONTEXT); \ 71 (section)->lock = NULL; \ sectionlock used to manage the state of mutexes.