Part of lp.services.timeout View In Hierarchy
It also saves exceptions raised when invoking the target.
Thread