1b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#include <stdlib.h>
2b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#include <stdio.h>
3b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#include <errno.h>
4b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#include <unistd.h>
5b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#include <sys/wait.h>
6b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanovint main()
7b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov{
8b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov   int mem = 0, pid;
9b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov   pid = fork();
10b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov   if (pid == -1) {
11b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov      mem = 1;
12b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov      perror("fork");
13b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov      exit(1);
14b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov   }
15b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov
16b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov   if (pid == 0) {
17b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov      int burn;
18b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov      for (burn = 0; burn < 100000; burn++) /* burncpu */__asm__ __volatile("":::"memory") ;
19b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov      if (mem == 0)
20b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov         exit(0);
21b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov      else
22b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov         exit(1);
23b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov   } else {
24b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov      int ret;
25b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov      int status;
26b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov      while((ret = waitpid(pid, &status, 0)) != pid) {
27b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov         if (errno != EINTR) {
28b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov            perror("waitpid");
29b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov            exit(1);
30b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov         }
31b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov      }
32b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov      mem = status;
33b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov   }
34b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov   if (mem == 0)
35b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov      printf("mem is zero\n");
36b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov
37b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov   return 0;
38b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov}
39