In reply to bmorris:
The wait fork is not not waiting for p1 or p2.
The point of the example was to show the effect of processes spawned before calling task a. The current process (p0) is the root process spawned by the initial block. It first calls task e, and the process it spawns is still active when the wait fork executes.