tryLock
Function parameters
Parameters
- rwl:*DefaultRwLock
Single-threaded applications use this for deadlock checks in
Types
- SingleThreadedRwLock
- Single-threaded applications use this for deadlock checks in
Attempts to obtain exclusive lock ownership.
Functions
- tryLock
- Attempts to obtain exclusive lock ownership.
- lock
- Blocks until exclusive lock ownership is acquired.
- unlock
- Releases a held exclusive lock.
- tryLockShared
- Attempts to obtain shared lock ownership.
- lockShared
- Obtains shared lock ownership.
- unlockShared
- Releases a held shared lock.
Source
Implementation
pub fn tryLock(rwl: *DefaultRwLock) bool {
if (rwl.mutex.tryLock()) {
const state = @atomicLoad(usize, &rwl.state, .seq_cst);
if (state & READER_MASK == 0) {
_ = @atomicRmw(usize, &rwl.state, .Or, IS_WRITING, .seq_cst);
return true;
}
rwl.mutex.unlock();
}
return false;
}