diff options
author | Himbeer <himbeer@disroot.org> | 2024-07-21 20:02:57 +0200 |
---|---|---|
committer | Himbeer <himbeer@disroot.org> | 2024-07-21 20:02:57 +0200 |
commit | c7a5459dcf93a75798a46cb2d7b2f77bf9483cc0 (patch) | |
tree | ad044c2f561a38e43870fcff3836666c7fd43852 | |
parent | fe0a01276bcf77a733e9b844ca368df39cd2ea7b (diff) |
vfs: Fix File.closeFn callback not being called
-rw-r--r-- | src/lib/vfs.zig | 7 |
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 { |