aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHimbeer <himbeer@disroot.org>2024-07-21 20:02:57 +0200
committerHimbeer <himbeer@disroot.org>2024-07-21 20:02:57 +0200
commitc7a5459dcf93a75798a46cb2d7b2f77bf9483cc0 (patch)
treead044c2f561a38e43870fcff3836666c7fd43852 /src
parentfe0a01276bcf77a733e9b844ca368df39cd2ea7b (diff)
vfs: Fix File.closeFn callback not being called
Diffstat (limited to 'src')
-rw-r--r--src/lib/vfs.zig7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/lib/vfs.zig b/src/lib/vfs.zig
index 47d631a..79a9e14 100644
--- a/src/lib/vfs.zig
+++ b/src/lib/vfs.zig
@@ -203,6 +203,13 @@ pub const ResourceDescriptor = struct {
pub fn deinit(self: ResourceDescriptor) void {
self.inode.refs -|= 1;
+
+ if (self.inode.resource.tag == .file and self.inode.pid != 0) {
+ if (self.inode.resource.data.file.closeFn) |closeFn| {
+ const driver = process.latestThread(self.inode.pid).?;
+ call(driver, closeFn, .{self.context.?}, null, null) catch {};
+ }
+ }
}
pub fn read(self: ResourceDescriptor, proc: *process.Info, buffer: []u8) !usize {