mirror of
https://github.com/python/cpython.git
synced 2025-12-09 18:48:05 +00:00
bpo-40453: Add PyConfig._isolated_subinterpreter (GH-19820)
An isolated subinterpreter cannot spawn threads, spawn a child process or call os.fork(). * Add private _Py_NewInterpreter(isolated_subinterpreter) function. * Add isolated=True keyword-only parameter to _xxsubinterpreters.create(). * Allow again os.fork() in "non-isolated" subinterpreters.
This commit is contained in:
parent
8bcfd31cc0
commit
252346acd9
14 changed files with 68 additions and 12 deletions
|
|
@ -663,6 +663,14 @@ subprocess_fork_exec(PyObject* self, PyObject *args)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
PyInterpreterState *interp = PyInterpreterState_Get();
|
||||
const PyConfig *config = _PyInterpreterState_GetConfig(interp);
|
||||
if (config->_isolated_interpreter) {
|
||||
PyErr_SetString(PyExc_RuntimeError,
|
||||
"subprocess not supported for isolated subinterpreters");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* We need to call gc.disable() when we'll be calling preexec_fn */
|
||||
if (preexec_fn != Py_None) {
|
||||
PyObject *result;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue