fix: set content to the new thread_list node

fix: copy child to the current_pcb
This commit is contained in:
0x35c
2025-11-30 14:24:33 +01:00
parent 5b25422f8d
commit 896a0a04f9

View File

@ -61,8 +61,8 @@ static int deep_copy(struct pcb *new_pcb)
return -1;
}
PD[i + USER_PT_END / 2] = (uint32_t)new_pt | INIT_FLAGS;
if (!copy_pt(PTE2VA(1023, i), PTE2VA(1023, i + USER_PT_END / 2),
i)) {
if (copy_pt(PTE2VA(1023, i), PTE2VA(1023, i + USER_PT_END / 2),
i) < 0) {
free_pts();
return -1;
}
@ -83,7 +83,7 @@ pid_t fork(void)
return -1;
}
new_pcb->daddy = current_pcb;
lst_add_back(&new_pcb->children, new_node);
lst_add_back(&current_pcb->children, new_node);
if (deep_copy(new_pcb) < 0)
goto error;
@ -105,6 +105,7 @@ pid_t fork(void)
memcpy(new_content, it->content, sizeof(struct tcb));
new_content->process = new_pcb;
e->next = NULL;
e->content = new_content;
prev = e;
}