bpo-37127: Remove _pending_calls.finishing (GH-19439)
diff --git a/Include/internal/pycore_pystate.h b/Include/internal/pycore_pystate.h
index 50d906c..fba0b6f 100644
--- a/Include/internal/pycore_pystate.h
+++ b/Include/internal/pycore_pystate.h
@@ -16,7 +16,6 @@
/* ceval state */
struct _pending_calls {
- int finishing;
PyThread_type_lock lock;
/* Request for running pending calls. */
_Py_atomic_int calls_to_do;
diff --git a/Python/ceval.c b/Python/ceval.c
index 2e94f32..e219ef3 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -547,18 +547,6 @@
assert(pending->lock != NULL);
PyThread_acquire_lock(pending->lock, WAIT_LOCK);
- if (pending->finishing) {
- PyThread_release_lock(pending->lock);
-
- PyObject *exc, *val, *tb;
- _PyErr_Fetch(tstate, &exc, &val, &tb);
- _PyErr_SetString(tstate, PyExc_SystemError,
- "Py_AddPendingCall: cannot add pending calls "
- "(Python shutting down)");
- _PyErr_Print(tstate);
- _PyErr_Restore(tstate, exc, val, tb);
- return -1;
- }
int result = _push_pending_call(pending, func, arg);
PyThread_release_lock(pending->lock);
@@ -666,10 +654,6 @@
struct _pending_calls *pending = &tstate->interp->ceval.pending;
- PyThread_acquire_lock(pending->lock, WAIT_LOCK);
- pending->finishing = 1;
- PyThread_release_lock(pending->lock);
-
if (!_Py_atomic_load_relaxed(&(pending->calls_to_do))) {
return;
}