fix: add: threads to process

This commit is contained in:
2025-11-06 14:38:49 +01:00
parent 359484b2e4
commit d12371d4a2
2 changed files with 19 additions and 8 deletions

View File

@ -46,13 +46,19 @@ struct pcb *create_process(uint8_t uid)
return NULL;
}
memcpy(new_pcb->heap, current_pcb->heap, 4096);
if (current_pcb) {
new_pcb->next = current_pcb->next;
new_pcb->prev = current_pcb;
current_pcb->next = new_pcb;
if (current_pcb->prev == current_pcb)
current_pcb->prev = new_pcb;
}
else {
current_pcb = new_pcb;
}
new_pcb->signals.pending = SIG_IGN;
new_pcb->thread_list = NULL;
return new_pcb;
}

View File

@ -28,9 +28,14 @@ struct tcb *create_thread(struct pcb *process, void (*routine)(void))
new_tcb->state = NEW;
struct tcb *it = process->thread_list;
if (it) {
while (it)
it = it->next;
it = new_tcb;
}
else {
process->thread_list = new_tcb;
}
return new_tcb;
}