fn random(userdata: ?*anyopaque, buffer: []u8) void
fn random(userdata: ?*anyopaque, buffer: []u8) void { const ev: *Evented = @ptrCast(@alignCast(userdata)); if (buffer.len == 0) return; const thread: *Thread = .current(); var rand: Random = .{ .evented = ev, .thread = thread, .buffer = buffer }; thread.seed_csprng.once(&rand, &Random.seed); if (rand.buffer.len > 0) thread.csprng.rng.fill(buffer); }