aboutsummaryrefslogtreecommitdiff
path: root/lib/std/Thread/Pool.zig
diff options
context:
space:
mode:
Diffstat (limited to 'lib/std/Thread/Pool.zig')
-rw-r--r--lib/std/Thread/Pool.zig30
1 files changed, 30 insertions, 0 deletions
diff --git a/lib/std/Thread/Pool.zig b/lib/std/Thread/Pool.zig
index d2b28492c6..486d067330 100644
--- a/lib/std/Thread/Pool.zig
+++ b/lib/std/Thread/Pool.zig
@@ -315,6 +315,11 @@ pub fn io(pool: *Pool) std.Io {
.vtable = &.{
.@"async" = @"async",
.@"await" = @"await",
+ .createFile = createFile,
+ .openFile = openFile,
+ .closeFile = closeFile,
+ .read = read,
+ .write = write,
},
};
}
@@ -399,3 +404,28 @@ pub fn @"await"(userdata: ?*anyopaque, any_future: *std.Io.AnyFuture, result: []
@memcpy(result, closure.resultPointer()[0..result.len]);
thread_pool.allocator.free(base[0 .. closure.result_offset + result.len]);
}
+
+pub fn createFile(userdata: ?*anyopaque, dir: std.fs.Dir, sub_path: []const u8, flags: std.fs.File.CreateFlags) std.fs.File.OpenError!std.fs.File {
+ _ = userdata;
+ return dir.createFile(sub_path, flags);
+}
+
+pub fn openFile(userdata: ?*anyopaque, dir: std.fs.Dir, sub_path: []const u8, flags: std.fs.File.OpenFlags) std.fs.File.OpenError!std.fs.File {
+ _ = userdata;
+ return dir.openFile(sub_path, flags);
+}
+
+pub fn closeFile(userdata: ?*anyopaque, file: std.fs.File) void {
+ _ = userdata;
+ return file.close();
+}
+
+pub fn read(userdata: ?*anyopaque, file: std.fs.File, buffer: []u8) std.fs.File.ReadError!usize {
+ _ = userdata;
+ return file.read(buffer);
+}
+
+pub fn write(userdata: ?*anyopaque, file: std.fs.File, buffer: []const u8) std.fs.File.WriteError!usize {
+ _ = userdata;
+ return file.write(buffer);
+}