diff options
-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 { |