Selection is handled by asynchronous events which populate the is_dead() boolean.
Critiquing my own code, though, it should really be a check against 'can_reproduce()' rather than 'is_dead()'.