Issue 36667: pdb: restore SIGINT handler in sigint_handler already (original) (raw)

Without this, and additional SIGINT while waiting for the next statement (e.g. during time.sleep) will stop at sigint_handler.

With this patch:

> …/t-pdb-sigint-in-sleep.py(10)<module>()
-> sleep()
(Pdb) c
^C
Program interrupted. (Use 'cont' to resume).
^CKeyboardInterrupt
> …/t-pdb-sigint-in-sleep.py(6)sleep()
-> time.sleep(10)
(Pdb)

Without this patch:

> …/t-pdb-sigint-in-sleep.py(10)<module>()
-> sleep()
(Pdb) c
^C
Program interrupted. (Use 'cont' to resume).
^C--Call--
> …/cpython/Lib/pdb.py(188)sigint_handler()
-> def sigint_handler(self, signum, frame):
(Pdb)

This was changed / regressed in https://github.com/python/cpython/commit/10e54aeaa234f2806b367c66e3fb4ac6568b39f6 (3.5.3rc1?), when it was moved while fixing issue 20766.