Function lockShared [src]

Blocks until shared lock ownership is acquired.

Prototype

pub fn lockShared(rwl: *SingleThreadedRwLock) void

Parameters

rwl: *SingleThreadedRwLock

Source

pub fn lockShared(rwl: *SingleThreadedRwLock) void { switch (rwl.state) { .unlocked => { rwl.state = .locked_shared; assert(rwl.shared_count == 0); rwl.shared_count = 1; }, .locked_shared => { rwl.shared_count += 1; }, .locked_exclusive => unreachable, // deadlock detected } }