blob: 6b9aa15d3531d242847e5ef787531fefb71fe761 [file] [log] [blame]
sewardj3b290482011-05-06 21:02:55 +00001#include <stdlib.h>
2#include <stdio.h>
3#include <errno.h>
bart667c6772011-05-08 09:29:06 +00004#include <unistd.h>
5#include <sys/wait.h>
bart667c6772011-05-08 09:29:06 +00006int main()
sewardj3b290482011-05-06 21:02:55 +00007{
bart95d12482011-05-08 10:10:04 +00008 int mem = 0, pid;
sewardj3b290482011-05-06 21:02:55 +00009 pid = fork();
10 if (pid == -1) {
11 mem = 1;
12 perror("fork");
13 exit(1);
14 }
15
16 if (pid == 0) {
sewardj45fa4172011-06-26 09:13:27 +000017 int burn;
18 for (burn = 0; burn < 100000; burn++) /* burncpu */__asm__ __volatile("":::"memory") ;
sewardj3b290482011-05-06 21:02:55 +000019 if (mem == 0)
20 exit(0);
21 else
22 exit(1);
23 } else {
24 int ret;
25 int status;
26 while((ret = waitpid(pid, &status, 0)) != pid) {
27 if (errno != EINTR) {
28 perror("waitpid");
29 exit(1);
30 }
31 }
32 mem = status;
33 }
34 if (mem == 0)
35 printf("mem is zero\n");
bart667c6772011-05-08 09:29:06 +000036
37 return 0;
sewardj3b290482011-05-06 21:02:55 +000038}