pub fn lockUncancelable(rl: *RwLock, io: Io) void
pub fn lockUncancelable(rl: *RwLock, io: Io) void { _ = @atomicRmw(usize, &rl.state, .Add, writer, .seq_cst); rl.mutex.lockUncancelable(io); const state = @atomicRmw(usize, &rl.state, .Add, is_writing -% writer, .seq_cst); if (state & reader_mask != 0) rl.semaphore.waitUncancelable(io); }