|
|
- #include <ulib.h>
- #include <stdio.h>
-
- const int max_child = 32;
-
- int
- main(void) {
- int n, pid;
- for (n = 0; n < max_child; n ++) {
- if ((pid = fork()) == 0) {
- cprintf("I am child %d\n", n);
- exit(0);
- }
- assert(pid > 0);
- }
-
- if (n > max_child) {
- panic("fork claimed to work %d times!\n", n);
- }
-
- for (; n > 0; n --) {
- if (wait() != 0) {
- panic("wait stopped early\n");
- }
- }
-
- if (wait() == 0) {
- panic("wait got too many\n");
- }
-
- cprintf("forktest pass.\n");
- return 0;
- }
-
|