move #cancellation_or_termination? guts to PersonLoop