Compare commits

...

2 Commits

Author SHA1 Message Date
c9a92819b4 fix: fork return pid instead uid 2025-01-30 10:47:36 +01:00
f75e121251 fix: fork: call scheduler before fork 2025-01-30 10:47:15 +01:00

View File

@ -5,6 +5,8 @@
u16 fork(void)
{
if (current_task->esp == current_task->esp0 + STACK_SIZE)
scheduler();
cli();
struct task *child = create_task(current_task->uid);
if (!child)
@ -16,5 +18,5 @@ u16 fork(void)
asm("movl %%esp, %0" : "=m"(daddy_esp));
child->esp = child->esp0 + (daddy_esp - current_task->esp0);
toris();
return current_task == child ? 0 : child->uid;
return current_task == child ? 0 : child->pid;
}