fn unlock(group: Group, ev: *Evented) void
group: Group
ev: *Evented
1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618
fn unlock(group: Group, ev: *Evented) void { const mutex = group.mutexPtr(); const old_state = @atomicRmw( Mutex, mutex, .And, .{ .locked = false, .contended = false, .shared2 = std.math.maxInt(u30) }, .release, ); assert(old_state.locked); if (old_state.contended) futexWake(ev, @ptrCast(mutex), 1); }