| #include <stdlib.h> | |
| #include <sys/wait.h> | |
| #include <unistd.h> | |
| constexpr int LOOP_COUNT = 100000000; | |
| volatile int a[2]; | |
| void ParentFunction() { | |
| volatile int* p = a + atoi("0"); | |
| for (int i = 0; i < LOOP_COUNT; ++i) { | |
| *p = i; | |
| } | |
| } | |
| void ChildFunction() { | |
| volatile int* p = a + atoi("1"); | |
| for (int i = 0; i < LOOP_COUNT; ++i) { | |
| *p = i; | |
| } | |
| } | |
| int main() { | |
| while (true) { | |
| pid_t pid = fork(); | |
| if (pid == 0) { | |
| ChildFunction(); | |
| return 0; | |
| } else { | |
| ParentFunction(); | |
| waitpid(pid, nullptr, 0); | |
| } | |
| } | |
| return 0; | |
| } |