feat: implement dup(2), dup2(2)
[lunaix-os.git] / lunaix-os / kernel / sched.c
index d1ee39d21bc3424ce5399d2c60f71d53cea58dca..37c02d1c705988dc5d53b0e738bbaaa83370ce37 100644 (file)
@@ -319,6 +319,14 @@ destroy_process(pid_t pid)
     proc->state = PS_DESTROY;
     llist_delete(&proc->siblings);
 
     proc->state = PS_DESTROY;
     llist_delete(&proc->siblings);
 
+    for (size_t i = 0; i < VFS_MAX_FD; i++) {
+        struct v_fd* fd = proc->fdtable->fds[i];
+        if (fd)
+            vfs_close(fd);
+    }
+
+    vfree(proc->fdtable);
+
     struct mm_region *pos, *n;
     llist_for_each(pos, n, &proc->mm.regions.head, head)
     {
     struct mm_region *pos, *n;
     llist_for_each(pos, n, &proc->mm.regions.head, head)
     {