fn registerAwaiter(group: Group, awaiter: *Fiber) bool
Assumes the mutex is held.
group: Group
awaiter: *Fiber
1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325
fn registerAwaiter(group: Group, awaiter: *Fiber) bool { awaiter.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.