
On Fri, Sep 21, 2018 at 8:52 AM Kyle Lahnakoski <klahnakoski@mozilla.com> wrote:
Since the java.lang.Thread.stop() "debacle", it has been obvious that stopping code to run other code has been dangerous. KeyboardInterrupt (any interrupt really) is dangerous. Now, we can probably code a solution, but how about we remove the danger:
I suggest we remove interrupts from Python, and make them act more like java.lang.Thread.interrupt(); setting a thread local bit to indicate an interrupt has occurred. Then we can write explicit code to check for that bit, and raise an exception in a safe place if we wish. This can be done with Python code, or convenient places in Python's C source itself. I imagine it would be easier to whitelist where interrupts can raise exceptions, rather than blacklisting where they should not.
The time machine strikes again! https://docs.python.org/3/c-api/exceptions.html#signal-handling ChrisA