aboutsummaryrefslogtreecommitdiff
path: root/lib/std/os.zig
diff options
context:
space:
mode:
Diffstat (limited to 'lib/std/os.zig')
-rw-r--r--lib/std/os.zig16
1 files changed, 8 insertions, 8 deletions
diff --git a/lib/std/os.zig b/lib/std/os.zig
index 8994884566..4ccdf57ad3 100644
--- a/lib/std/os.zig
+++ b/lib/std/os.zig
@@ -164,17 +164,17 @@ pub fn getrandom(buffer: []u8) GetRandomError!void {
}
return;
}
- if (builtin.os.tag == .netbsd or builtin.os.tag == .openbsd) {
- system.arc4random_buf(buffer.ptr, buffer.len);
- return;
- }
- if (builtin.os.tag == .wasi) {
- switch (wasi.random_get(buffer.ptr, buffer.len)) {
+ switch (builtin.os.tag) {
+ .netbsd, .openbsd, .macos, .ios, .tvos, .watchos => {
+ system.arc4random_buf(buffer.ptr, buffer.len);
+ return;
+ },
+ .wasi => switch (wasi.random_get(buffer.ptr, buffer.len)) {
0 => return,
else => |err| return unexpectedErrno(err),
- }
+ },
+ else => return getRandomBytesDevURandom(buffer),
}
- return getRandomBytesDevURandom(buffer);
}
fn getRandomBytesDevURandom(buf: []u8) !void {