aboutsummaryrefslogtreecommitdiff
path: root/lib/std/fs
diff options
context:
space:
mode:
authorLoris Cro <kappaloris@gmail.com>2020-06-16 23:14:05 +0200
committerLoris Cro <kappaloris@gmail.com>2020-09-24 22:00:55 +0200
commit08364ac773bdc95b9407974b5c761dbdab863f4d (patch)
tree32f61702861b3476b49b65df2693ba887753d676 /lib/std/fs
parent730428bfd615cab415b2942fc9b781428a0ff692 (diff)
downloadzig-08364ac773bdc95b9407974b5c761dbdab863f4d.tar.gz
zig-08364ac773bdc95b9407974b5c761dbdab863f4d.zip
read
Signed-off-by: Loris Cro <kappaloris@gmail.com>
Diffstat (limited to 'lib/std/fs')
-rw-r--r--lib/std/fs/file.zig8
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/std/fs/file.zig b/lib/std/fs/file.zig
index 73babf5fa2..bd0b8a2943 100644
--- a/lib/std/fs/file.zig
+++ b/lib/std/fs/file.zig
@@ -414,10 +414,12 @@ pub const File = struct {
pub fn read(self: File, buffer: []u8) ReadError!usize {
if (is_windows) {
return windows.ReadFile(self.handle, buffer, null, self.intended_io_mode);
- } else if (self.capable_io_mode != self.intended_io_mode) {
- return std.event.Loop.instance.?.read(self.handle, buffer);
- } else {
+ }
+
+ if (self.intended_io_mode == .blocking or !std.io.is_async) {
return os.read(self.handle, buffer);
+ } else {
+ return std.event.Loop.instance.?.read(self.handle, buffer, self.capable_io_mode != self.intended_io_mode);
}
}