def set_alarm(self, duration, handler): sigalrm_handler = signal.signal(signal.SIGALRM, handler) self.addCleanup(signal.signal, signal.SIGALRM, sigalrm_handler) self._begin_alarm_thread(duration)