fn await( userdata: ?*anyopaque, future: *std.Io.AnyFuture, result: []u8, result_alignment: Alignment, ) void
fn await( userdata: ?*anyopaque, future: *std.Io.AnyFuture, result: []u8, result_alignment: Alignment, ) void { const ev: *Evented = @ptrCast(@alignCast(userdata)); const awaiting: *Fiber = @ptrCast(@alignCast(future)); if (@atomicLoad(?*Fiber, &awaiting.link.awaiter, .acquire) != Fiber.finished) ev.yield(.{ .await = awaiting }); @memcpy(result, awaiting.resultBytes(result_alignment)); awaiting.destroy(ev); }