fn randomSecure(userdata: ?*anyopaque, buffer: []u8) Io.RandomSecureError!void userdata: ?*anyopaquebuffer: []u84975
4976
4977
4978
4979
4980
4981
4982
4983
4984fn randomSecure(userdata: ?*anyopaque, buffer: []u8) Io.RandomSecureError!void {
const ev: *Evented = @ptrCast(@alignCast(userdata));
if (buffer.len == 0) return;
var cancel_region: CancelRegion = .init();
defer cancel_region.deinit();
ev.urandomReadAll(&cancel_region, buffer) catch |err| switch (err) {
error.Canceled => |e| return e,
else => return error.EntropyUnavailable,
};
}