This is a special case of a DeadLock: two processes both wait for the other to continue. It is easy to produce such a condition, f.ex by piping together a program that alternates between writing a line to its output and reading one from its input with one that expects all input in a single batch and produces all output in a single batch. Proper Synchronisation is necessary to avoid a DeadlyEmbrace.