import os import signal class Bug: def run(self): pid = os.getpid() SIGNUM = signal.SIGINT for loop in range(16): print("LOOP", loop) self.called = False def handler(func_signum, frame): self.called = True old_signal = signal.signal(SIGNUM, handler) try: os.kill(pid, SIGNUM) if not self.called: raise Exception("bug") finally: signal.signal(SIGNUM, old_signal ) if __name__ == "__main__": Bug().run()