For the programmatically uninitiated, it is basically an infinite loop. If a circular dependency is allowed to run.
A needs B to do its job, but B also needs A to do its job. So if you start A, it calls and waits for B, but then B calls and waits for A – and it becomes a cycle.