fix wait bug in init
This commit is contained in:
parent
f8f7fcbebd
commit
39c84ccf48
2 changed files with 4 additions and 7 deletions
4
BUGS
4
BUGS
|
@ -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
|
||||
|
|
9
init.c
9
init.c
|
@ -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)
|
||||
;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue