fn random(userdata: ?*anyopaque, buffer: []u8) void
fn random(userdata: ?*anyopaque, buffer: []u8) void { const t: *Threaded = @ptrCast(@alignCast(userdata)); const thread = Thread.current orelse return randomMainThread(t, buffer); if (!thread.csprng.isInitialized()) { @branchHint(.unlikely); var seed: [Csprng.seed_len]u8 = undefined; randomMainThread(t, &seed); thread.csprng.rng = .init(seed); } thread.csprng.rng.fill(buffer); }