From 67491a4222f2dacf047989329d4c16a5a2f163d5 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Wed, 11 Sep 2019 15:01:21 -0400 Subject: [PATCH] disable runtime safety in std.io.InStream Let's not be writing 0xaa in safe modes for upwards of 4 MiB for every stream read. This is equivalent to the fact that we don't memset the entire call stack to 0xaa for every function call. --- std/io/in_stream.zig | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/std/io/in_stream.zig b/std/io/in_stream.zig index 850f8dcb0..c617f1050 100644 --- a/std/io/in_stream.zig +++ b/std/io/in_stream.zig @@ -32,10 +32,10 @@ pub fn InStream(comptime ReadError: type) type { /// End of stream is not an error condition. pub fn read(self: *Self, buffer: []u8) Error!usize { if (std.io.is_async) { + // Let's not be writing 0xaa in safe modes for upwards of 4 MiB for every stream read. + @setRuntimeSafety(false); var stack_frame: [stack_size]u8 align(stack_align) = undefined; - // TODO https://github.com/ziglang/zig/issues/3068 - var result: Error!usize = undefined; - return await @asyncCall(&stack_frame, &result, self.readFn, self, buffer); + return await @asyncCall(&stack_frame, {}, self.readFn, self, buffer); } else { return self.readFn(self, buffer); }