pub fn lockUncancelable(m: *Mutex, io: Io) void
Same as lock, except does not introduce a cancelation point.
lock
For a description of cancelation and cancelation points, see Future.cancel.
Future.cancel
m: *Mutex
io: Io
1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762
pub fn lockUncancelable(m: *Mutex, io: Io) void { const initial_state = m.state.cmpxchgStrong( .unlocked, .locked_once, .acquire, .monotonic, ) orelse { @branchHint(.likely); return; }; if (initial_state == .contended) { io.futexWaitUncancelable(State, &m.state.raw, .contended); } while (m.state.swap(.contended, .acquire) != .unlocked) { io.futexWaitUncancelable(State, &m.state.raw, .contended); } }
Same as
lock, except does not introduce a cancelation point.For a description of cancelation and cancelation points, see
Future.cancel.