llist_append(&root_proc->sleep.sleepers, &__current->sleep.sleepers);
__current->intr_ctx.registers.eax = seconds;
- __current->state = PS_BLOCKED;
+
+ block_current();
schedule();
}
for (size_t i = 0; i < VFS_MAX_FD; i++) {
struct v_fd* fd = proc->fdtable->fds[i];
- if (fd)
+ if (fd) {
vfs_pclose(fd->file, pid);
+ vfs_free_fd(fd);
+ }
}
vfree(proc->fdtable);