fn registerAwaiter(group: Group, awaiter: *Fiber) bool
Assumes the mutex is held.
group: Group
awaiter: *Fiber
1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736
fn registerAwaiter(group: Group, awaiter: *Fiber) bool { assert(awaiter.status.queue_next == null); awaiter.status = .{ .awaiting_group = group }; assert(@atomicRmw( Awaiter, group.awaiterPtr(), .Add, .{ .locked = false, .contended = false, .awaiter = .pack(awaiter) }, .monotonic, ).awaiter == .null); return awaiter.cancel_status.changeAwaiting(.nothing, .group); }
Assumes the mutex is held.