]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-37127: Remove _pending_calls.finishing (GH-19439)
authorVictor Stinner <vstinner@python.org>
Wed, 8 Apr 2020 20:10:53 +0000 (22:10 +0200)
committerGitHub <noreply@github.com>
Wed, 8 Apr 2020 20:10:53 +0000 (22:10 +0200)
Include/internal/pycore_pystate.h
Python/ceval.c

index 50d906c4c6ddecbb17dc861c8409f84970d82634..fba0b6f920817ca121e402d3d1931b0d222eeb11 100644 (file)
@@ -16,7 +16,6 @@ extern "C" {
 /* ceval state */
 
 struct _pending_calls {
-    int finishing;
     PyThread_type_lock lock;
     /* Request for running pending calls. */
     _Py_atomic_int calls_to_do;
index 2e94f32f6c00ba4769c4887525d4bdb50a833871..e219ef388ccd1313186294e1c532d8cc22acbad3 100644 (file)
@@ -547,18 +547,6 @@ _PyEval_AddPendingCall(PyThreadState *tstate,
     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 @@ _Py_FinishPendingCalls(PyThreadState *tstate)
 
     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;
     }