classification
Title: pdb: restore SIGINT handler in sigint_handler already
Type: behavior Stage: patch review
Components: Library (Lib) Versions: Python 3.9
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: blueyed
Priority: normal Keywords: patch

Created on 2019-04-19 11:07 by blueyed, last changed 2019-04-19 11:08 by blueyed.

Pull Requests
URL Status Linked Edit
PR 12880 open blueyed, 2019-04-19 11:08
Messages (1)
msg340539 - (view) Author: daniel hahler (blueyed) * Date: 2019-04-19 11:07
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.
History
Date User Action Args
2019-04-19 11:08:26blueyedsetkeywords: + patch
stage: patch review
pull_requests: + pull_request12804
2019-04-19 11:07:53blueyedcreate