diff options
| author | Anton Kling <anton@kling.gg> | 2024-02-19 18:52:30 +0100 | 
|---|---|---|
| committer | Anton Kling <anton@kling.gg> | 2024-02-19 18:52:30 +0100 | 
| commit | 239e33019117f4ab59dd26550d7969e45c290166 (patch) | |
| tree | de180effd804573d07acf8ac495fa7defc1edd70 /kernel/sched/scheduler.c | |
| parent | 61c443579150a4714c132ecb1ac18779535f91c9 (diff) | |
Kernel/VFS: Cleanup of file descriptor halts
Diffstat (limited to 'kernel/sched/scheduler.c')
| -rw-r--r-- | kernel/sched/scheduler.c | 17 | 
1 files changed, 7 insertions, 10 deletions
| diff --git a/kernel/sched/scheduler.c b/kernel/sched/scheduler.c index 8cb5af7..5a95c4c 100644 --- a/kernel/sched/scheduler.c +++ b/kernel/sched/scheduler.c @@ -119,6 +119,10 @@ process_t *create_process(process_t *p, u32 esp, u32 eip) {    r->tcb = kcalloc(1, sizeof(struct TCB));    r->tcb->CR3 = r->cr3->physical_address; +  list_init(&r->read_list); +  list_init(&r->write_list); +  list_init(&r->disconnect_list); +    // Temporarily switch to the page directory to be able to place the    // "entry_instruction_pointer" onto the stack. @@ -155,12 +159,6 @@ process_t *create_process(process_t *p, u32 esp, u32 eip) {      } else {        r->file_descriptors[i] = NULL;      } -    if (i < 20) -      r->signal_handlers[i] = NULL; -    r->read_halt_inode[i] = NULL; -    r->write_halt_inode[i] = NULL; -    r->disconnect_halt_inode[i] = NULL; -    r->maps[i] = NULL;    }    return r;  } @@ -332,8 +330,7 @@ int is_halted(process_t *process) {      if (process->halts[i])        return 1; -  if (isset_fdhalt(process->read_halt_inode, process->write_halt_inode, -                   process->disconnect_halt_inode)) { +  if (isset_fdhalt(process)) {      return 1;    }    return 0; @@ -349,7 +346,7 @@ process_t *next_task(process_t *c) {        if (1 == loop) {          return s;        } -      loop = 1; +      //      loop = 1;      }      c = c->next;      if (!c) @@ -387,8 +384,8 @@ void switch_task() {    if (!current_task) {      return;    } -  disable_interrupts(); +  disable_interrupts();    current_task = next_task((process_t *)current_task);    active_directory = current_task->cr3; |