aboutsummaryrefslogtreecommitdiff
path: root/lib/std/fs/file.zig
diff options
context:
space:
mode:
Diffstat (limited to 'lib/std/fs/file.zig')
-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 ab7ea2f579..60efe28ec2 100644
--- a/lib/std/fs/file.zig
+++ b/lib/std/fs/file.zig
@@ -566,10 +566,12 @@ pub const File = struct {
pub fn pwrite(self: File, bytes: []const u8, offset: u64) PWriteError!usize {
if (is_windows) {
return windows.WriteFile(self.handle, bytes, offset, self.intended_io_mode);
- } else if (self.capable_io_mode != self.intended_io_mode) {
- return std.event.Loop.instance.?.pwrite(self.handle, bytes, offset);
- } else {
+ }
+
+ if (self.intended_io_mode == .blocking) {
return os.pwrite(self.handle, bytes, offset);
+ } else {
+ return std.event.Loop.instance.?.pwrite(self.handle, bytes, offset, self.capable_io_mode != self.intended_io_mode);
}
}