summaryrefslogtreecommitdiff
path: root/kernel/sched
diff options
context:
space:
mode:
authorAnton Kling <anton@kling.gg>2024-04-27 18:32:32 +0200
committerAnton Kling <anton@kling.gg>2024-04-27 18:32:32 +0200
commite3ff175cc3a5fdd1d65a34d081955b9808c49eca (patch)
tree3cf41a97d8800ca92c4781847185975a0c95dbef /kernel/sched
parent02c27583a539c4e8073509536d328581cf1ba346 (diff)
Kernel: Make "relist" able to dynamically resize
Diffstat (limited to 'kernel/sched')
-rw-r--r--kernel/sched/scheduler.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/kernel/sched/scheduler.c b/kernel/sched/scheduler.c
index 42d4dc7..639dd05 100644
--- a/kernel/sched/scheduler.c
+++ b/kernel/sched/scheduler.c
@@ -127,8 +127,12 @@ process_t *create_process(process_t *p, u32 esp, u32 eip) {
}
for (int i = 0;; i++) {
vfs_fd_t *out;
- if (!relist_get(&r->file_descriptors, i, (void **)&out)) {
- break;
+ int empty;
+ if (!relist_get(&r->file_descriptors, i, (void **)&out, &empty)) {
+ if (empty) {
+ break;
+ }
+ continue;
}
if (out) {
out->reference_count++;