aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
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 {