35 lines
564 B
C++
35 lines
564 B
C++
|
#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;
|
||
|
}
|