diff options
| author | Loris Cro <kappaloris@gmail.com> | 2020-06-19 23:08:34 +0200 |
|---|---|---|
| committer | Loris Cro <kappaloris@gmail.com> | 2020-09-24 22:04:05 +0200 |
| commit | bd9f2369d5c4e5fcd38342c877f9ae6531f78909 (patch) | |
| tree | dff3bdfb5bb5ceaa552ef2aa06476518b145af89 /lib/std/fs | |
| parent | bc35435ca6e51d0e120538398e3c708ada57f6de (diff) | |
| download | zig-bd9f2369d5c4e5fcd38342c877f9ae6531f78909.tar.gz zig-bd9f2369d5c4e5fcd38342c877f9ae6531f78909.zip | |
pread
Signed-off-by: Loris Cro <kappaloris@gmail.com>
Diffstat (limited to 'lib/std/fs')
| -rw-r--r-- | lib/std/fs/file.zig | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/std/fs/file.zig b/lib/std/fs/file.zig index 51ad931504..cb3b41ffdf 100644 --- a/lib/std/fs/file.zig +++ b/lib/std/fs/file.zig @@ -438,10 +438,12 @@ pub const File = struct { pub fn pread(self: File, buffer: []u8, offset: u64) PReadError!usize { if (is_windows) { return windows.ReadFile(self.handle, buffer, offset, self.intended_io_mode); - } else if (self.capable_io_mode != self.intended_io_mode) { - return std.event.Loop.instance.?.pread(self.handle, buffer, offset); - } else { + } + + if (self.intended_io_mode == .blocking) { return os.pread(self.handle, buffer, offset); + } else { + return std.event.Loop.instance.?.pread(self.handle, buffer, offset, self.capable_io_mode != self.intended_io_mode); } } |
