const State = enum(usize) 17889
17890
17891
17892
17893
17894
17895
17896
17897
17898
17899
17900
17901
17902
17903
17904 const State = enum(usize) {
unlocked = 1,
/// This value is intentionally 0 so that `waiter` returns `null`.
locked_once = 0,
/// Contended; value is a `*Waiter`.
_,
/// Returns the head of the waiter list. Illegal to call if `s == .unlocked`.
fn waiter(s: State) ?*Waiter {
return @ptrFromInt(@backingInt(s));
}
/// Returns a locked state where `w` is contending the lock.
/// If `w` is `null`, returns `.locked_once`.
fn fromWaiter(w: ?*Waiter) State {
return @fromBackingInt(@intCast(@intFromPtr(w)));
}
}