Ogni secondo, il processo P0 manda un intero scelto a caso tra 0 e 9 al processo P1 tramite una pipe. Il processo P1 legge il dato, e se è dispari lo manda al processo P2 tramite un'altra pipe, altrimenti lo manda al processo P3 tramite una terza pipe; quindi si mette in attesa di un altro dato da P0.
I processi P2 e P3 si comportano in maniera identica: si mettono in attesa di un dato sulla propria pipe; se ricevono il dato entro 4 secondi, lo stampano a video e si rimettono in attesa da capo; se non ricevono il dato entro 4 secondi, stampano un messaggio a video e terminano.
Dal momento in cui uno tra P2 e P3 termina, anche P0 e P1 devono terminare.