From 02c27583a539c4e8073509536d328581cf1ba346 Mon Sep 17 00:00:00 2001 From: Anton Kling Date: Sat, 27 Apr 2024 15:26:39 +0200 Subject: Kernel: Make file descriptor numbers reusable. Instead of using the "append only" list it now uses "relist" which allows for indexes to be removed. --- kernel/sched/scheduler.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'kernel/sched/scheduler.c') diff --git a/kernel/sched/scheduler.c b/kernel/sched/scheduler.c index 6454775..42d4dc7 100644 --- a/kernel/sched/scheduler.c +++ b/kernel/sched/scheduler.c @@ -120,14 +120,14 @@ process_t *create_process(process_t *p, u32 esp, u32 eip) { } if (p) { - if (!list_clone(&p->file_descriptors, &r->file_descriptors)) { + if (!relist_clone(&p->file_descriptors, &r->file_descriptors)) { kfree(r->tcb); kfree(r); return NULL; } for (int i = 0;; i++) { vfs_fd_t *out; - if (!list_get(&p->file_descriptors, i, (void **)&out)) { + if (!relist_get(&r->file_descriptors, i, (void **)&out)) { break; } if (out) { @@ -135,7 +135,7 @@ process_t *create_process(process_t *p, u32 esp, u32 eip) { } } } else { - list_init(&r->file_descriptors); + relist_init(&r->file_descriptors); } if (p) { @@ -208,7 +208,7 @@ void free_process(process_t *p) { list_free(&p->tcp_sockets); list_free(&p->tcp_listen); list_free(&p->event_queue); - list_free(&p->file_descriptors); + relist_free(&p->file_descriptors); kfree(p->tcb); mmu_free_pagedirectory(p->cr3); -- cgit v1.2.3