提交 39c84ccf 创建 作者: rsc's avatar rsc

fix wait bug in init

上级 f8f7fcbe
......@@ -11,10 +11,6 @@ main.c:
cpus[0] -> cpus[bcpu]
init.c:
should while(wait() >= 0);
not just wait();
proc.c:
comment at top of scheduler() should say
via longjmp back to the scheduler
......
......@@ -11,7 +11,7 @@ char *sh_args[] = { "sh", 0 };
int
main(void)
{
int pid;
int pid, wpid;
if(open("console", O_RDWR) < 0){
mknod("console", T_DEV, 1, 1);
......@@ -21,6 +21,7 @@ main(void)
dup(0); // stderr
for(;;){
puts("init: starting sh\n");
pid = fork();
if(pid < 0){
puts("init: fork failed\n");
......@@ -30,8 +31,8 @@ main(void)
exec("sh", sh_args);
puts("init: exec sh failed\n");
exit();
} else {
wait();
}
while((wpid=wait()) >= 0 && wpid != pid)
;
}
}
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论