diff options
author | Victor Stinner <vstinner@python.org> | 2024-02-14 22:35:06 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-14 22:35:06 (GMT) |
commit | 3e7b7df5cbaad5617cc28f0c005010787c48e6d6 (patch) | |
tree | 3ce4371899be9adafac100da28b30b30884e7af9 /Modules/posixmodule.c | |
parent | 326119d3731f784aa9f5d4afa7b687dd1ab1d916 (diff) | |
download | cpython-3e7b7df5cbaad5617cc28f0c005010787c48e6d6.zip cpython-3e7b7df5cbaad5617cc28f0c005010787c48e6d6.tar.gz cpython-3e7b7df5cbaad5617cc28f0c005010787c48e6d6.tar.bz2 |
gh-114570: Add PythonFinalizationError exception (#115352)
Add PythonFinalizationError exception. This exception derived from
RuntimeError is raised when an operation is blocked during the Python
finalization.
The following functions now raise PythonFinalizationError, instead of
RuntimeError:
* _thread.start_new_thread()
* subprocess.Popen
* os.fork()
* os.fork1()
* os.forkpty()
Morever, _winapi.Overlapped finalizer now logs an unraisable
PythonFinalizationError, instead of an unraisable RuntimeError.
Diffstat (limited to 'Modules/posixmodule.c')
-rw-r--r-- | Modules/posixmodule.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c index ef6d656..958b5a5 100644 --- a/Modules/posixmodule.c +++ b/Modules/posixmodule.c @@ -7841,7 +7841,7 @@ os_fork1_impl(PyObject *module) PyInterpreterState *interp = _PyInterpreterState_GET(); if (interp->finalizing) { - PyErr_SetString(PyExc_RuntimeError, + PyErr_SetString(PyExc_PythonFinalizationError, "can't fork at interpreter shutdown"); return NULL; } @@ -7885,7 +7885,7 @@ os_fork_impl(PyObject *module) pid_t pid; PyInterpreterState *interp = _PyInterpreterState_GET(); if (interp->finalizing) { - PyErr_SetString(PyExc_RuntimeError, + PyErr_SetString(PyExc_PythonFinalizationError, "can't fork at interpreter shutdown"); return NULL; } @@ -8718,7 +8718,7 @@ os_forkpty_impl(PyObject *module) PyInterpreterState *interp = _PyInterpreterState_GET(); if (interp->finalizing) { - PyErr_SetString(PyExc_RuntimeError, + PyErr_SetString(PyExc_PythonFinalizationError, "can't fork at interpreter shutdown"); return NULL; } |