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
1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523
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(null, .{ .await = awaiting }); @memcpy(result, awaiting.resultBytes(result_alignment)); awaiting.destroy(); }