fn await( userdata: ?*anyopaque, future: *std.Io.AnyFuture, result: []u8, result_alignment: Alignment, ) void
userdata: ?*anyopaque
future: *std.Io.AnyFuture
result: []u8
result_alignment: Alignment
1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113
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); }