mirror of
https://github.com/python/cpython.git
synced 2024-11-23 18:04:37 +08:00
gh-113848: Use PyErr_GivenExceptionMatches() for check for CancelledError (GH-113849)
This commit is contained in:
parent
9100fc407e
commit
5273655bea
@ -2754,7 +2754,6 @@ gen_status_from_result(PyObject **result)
|
||||
static PyObject *
|
||||
task_step_impl(asyncio_state *state, TaskObj *task, PyObject *exc)
|
||||
{
|
||||
int res;
|
||||
int clear_exc = 0;
|
||||
PyObject *result = NULL;
|
||||
PyObject *coro;
|
||||
@ -2771,20 +2770,7 @@ task_step_impl(asyncio_state *state, TaskObj *task, PyObject *exc)
|
||||
if (task->task_must_cancel) {
|
||||
assert(exc != Py_None);
|
||||
|
||||
if (exc) {
|
||||
/* Check if exc is a CancelledError */
|
||||
res = PyObject_IsInstance(exc, state->asyncio_CancelledError);
|
||||
if (res == -1) {
|
||||
/* An error occurred, abort */
|
||||
goto fail;
|
||||
}
|
||||
if (res == 0) {
|
||||
/* exc is not CancelledError; reset it to NULL */
|
||||
exc = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
if (!exc) {
|
||||
if (!exc || !PyErr_GivenExceptionMatches(exc, state->asyncio_CancelledError)) {
|
||||
/* exc was not a CancelledError */
|
||||
exc = create_cancelled_error(state, (FutureObj*)task);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user