40 printf (
"mutex locked section 1\n");
45 printf (
"mutex locked section 2\n");
73 ECHO(
"mutex locked section");
92 printf (
"outer mutex locked section\n");
96 printf (
"inner mutex locked section\n");
114 printf (
"outer mutex locked section\n");
118 printf (
"inner but not outer mutex locked section\n");
136 printf (
"recmutex locked once\n");
140 printf (
"recmutex locked twice\n");
LumieraMutex lumiera_mutex_destroy(LumieraMutex self, struct nobug_flag *flag, const struct nobug_context ctx)
Destroy a mutex variable.
LumieraMutex lumiera_mutex_init(LumieraMutex self, const char *purpose, struct nobug_flag *flag, const struct nobug_context ctx)
Initialise a mutex variable This initialises a 'fast' default mutex which must not be locked recursiv...
Mutual exclusion locking, header.
#define LUMIERA_MUTEX_SECTION(nobugflag, mtx)
Mutual exclusive section.
#define LUMIERA_MUTEX_SECTION_UNLOCK
#define LUMIERA_MUTEX_SECTION_CHAIN(nobugflag, mtx)
Mutual exclusion chainbuilder section.
LumieraRecmutex lumiera_recmutex_init(LumieraRecmutex self, const char *purpose, struct nobug_flag *flag, const struct nobug_context ctx)
Initialise a recursive mutex variable Initialises a 'recursive' mutex which might be locked by the sa...
LumieraRecmutex lumiera_recmutex_destroy(LumieraRecmutex self, struct nobug_flag *flag, const struct nobug_context ctx)
Destroy a recursive mutex variable.
Mutual exclusion locking, header.
#define LUMIERA_RECMUTEX_SECTION(nobugflag, mtx)
Recursive Mutual exclusive section.
Helpers and support macros for defining test executables in C.