Skip to content

Reader writer lock

struct rwlock {
(uintptr_t) lock_word;
};
enum rwlock_acquire_type {
RWLOCK_ACQUIRE_READ = 0,
RWLOCK_ACQUIRE_WRITE = 1,
};
#define RWLOCK_PRIO_CEIL_SHIFT (1)
#define RWLOCK_INIT(ceil) {((ceil) << RWLOCK_PRIO_CEIL_SHIFT)}