aboutsummaryrefslogtreecommitdiff
path: root/lib/std/Thread/Pool.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2025-03-28 18:23:49 -0700
committerAndrew Kelley <andrew@ziglang.org>2025-10-29 06:20:47 -0700
commit66b0f7e92b64538de7f9d9f37a4ef1c25f0f6e5b (patch)
treea73a14988d5fb2177833f7309a430ab2f45ada5d /lib/std/Thread/Pool.zig
parent08bb7c6c889594f2a1694c5bdf0f4648be4a8d66 (diff)
downloadzig-66b0f7e92b64538de7f9d9f37a4ef1c25f0f6e5b.tar.gz
zig-66b0f7e92b64538de7f9d9f37a4ef1c25f0f6e5b.zip
start adding fs functions to std.Io
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);
+}