034a16234d646a28e8db02a4dd896dd25f42b784
[pintos-anon] / grading / vm / page-parallel.c
1 #include <stdio.h>
2 #ifdef PINTOS
3 #include <syscall.h>
4 #else
5 #include "posix-compat.h"
6 #endif
7
8 #define CHILD_CNT 3
9
10 int
11 main (void) 
12 {
13   pid_t children[CHILD_CNT];
14   int i;
15
16   printf ("(page-parallel) begin\n");
17   for (i = 0; i < CHILD_CNT; i++) 
18     {
19       printf ("(page-parallel) start child %d\n", i);
20       children[i] = exec ("child-linear");
21       if (children[i] == -1) 
22         {
23           printf ("(page-parallel) exec() returned pid -1\n");
24           return 1;
25         }
26     }
27
28   for (i = 0; i < CHILD_CNT; i++) 
29     {
30       int code;
31       printf ("(page-parallel) wait for child %d\n", i);
32       code = wait (children[i]);
33       if (code != 0x42)
34         printf ("(page-parallel) child %d returned bad exit code\n", i);
35     }
36   printf ("(page-parallel) end\n");
37
38   return 0;
39 }