summaryrefslogtreecommitdiffstats
path: root/Modules/posixmodule.c
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@python.org>2024-02-14 22:35:06 (GMT)
committerGitHub <noreply@github.com>2024-02-14 22:35:06 (GMT)
commit3e7b7df5cbaad5617cc28f0c005010787c48e6d6 (patch)
tree3ce4371899be9adafac100da28b30b30884e7af9 /Modules/posixmodule.c
parent326119d3731f784aa9f5d4afa7b687dd1ab1d916 (diff)
downloadcpython-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.c6
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;
}