Feature or enhancement
Proposal:
When PyThreadState_Clear() is called, the thread state could still have an exception set. As a user, it would be helpful to know when that happens. This is similar to how we already warn the user if the thread state was still running Python code (we check tstate->current_frame).
For unhandled exceptions, I'm pretty sure we'd check tstate->exc_state (or maybe tstate->exc_info), along with tstate->current_exception. We could emit a warning, as well as print the traceback (or generally invoke sys.excepthook()).
It would probably make sense to separately warn about tstate->async_exc (and print that traceback).
Has this already been discussed elsewhere?
No response given
Links to previous discussion of this feature:
No response
Linked PRs
Feature or enhancement
Proposal:
When
PyThreadState_Clear()is called, the thread state could still have an exception set. As a user, it would be helpful to know when that happens. This is similar to how we already warn the user if the thread state was still running Python code (we checktstate->current_frame).For unhandled exceptions, I'm pretty sure we'd check
tstate->exc_state(or maybetstate->exc_info), along withtstate->current_exception. We could emit a warning, as well as print the traceback (or generally invokesys.excepthook()).It would probably make sense to separately warn about
tstate->async_exc(and print that traceback).Has this already been discussed elsewhere?
No response given
Links to previous discussion of this feature:
No response
Linked PRs
PyThreadState_Clearis called with an exception set #121343