Race conditions
A race condition occurs when multiple processes are trying to do something with shared data and the final outcome depends on the order in which the processes run
This is a situation when using forks: if any code after the fork explicitly or implicitly depends on whether or not the parent or child runs first after the fork
A parent process can call wait() for a child to terminate (may block)
A child process can wait for the parent to terminate by polling it (wasteful)
Standard solution is to use signals