-
-
Notifications
You must be signed in to change notification settings - Fork 31.7k
bpo-45711: Use _PyErr_ClearExcState instead of setting only exc_value… #29404
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
/* Transfer ownership of exc_value from exc_state to exc since we are | ||
done with it. */ | ||
PyException_SetContext(exc, exc_state->exc_value); | ||
exc_state->exc_value = NULL; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note that PyErr_Occurred checks whether the type is NULL, not the value. So setting just the value to NULL here doesn't follow the interpreter's semantics for the triplet.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, the PR is correct.
… to NULL
This PR tidies up exception handling in Future/Task._make_cancelled_error to make it clearer what's happening and pave the way for a refactor of how the interpreter represents exceptions.
https://bugs.python.org/issue45711