Function unlockShared [src]

Releases a held shared lock.

Prototype

pub fn unlockShared(rwl: *SingleThreadedRwLock) void

Parameters

rwl: *SingleThreadedRwLock

Source

pub fn unlockShared(rwl: *SingleThreadedRwLock) void { switch (rwl.state) { .unlocked => unreachable, // too many calls to `unlockShared` .locked_exclusive => unreachable, // exclusively held lock .locked_shared => { rwl.shared_count -= 1; if (rwl.shared_count == 0) { rwl.state = .unlocked; } }, } }