fn unlock(mutex: *Mutex) void
mutex: *Mutex
957 958 959 960 961 962 963 964 965 966
fn unlock(mutex: *Mutex) void { const state = @atomicRmw(State, &mutex.state, .And, .{ .locked = false, .num_waiters = std.math.maxInt(State.NumWaiters), }, .release); if (state.num_waiters > 0) { @branchHint(.unlikely); mutex.queue.async(mutex, &Waiter.remove); } }