Issue #23694: Fix usage of _Py_open() in the _posixsubprocess module
Don't call _Py_open() from _close_open_fds_safe() because it is call just after fork(). It's not good to play with locks (the GIL) between fork() and exec(). Use instead _Py_open_noraise() which doesn't touch to the GIL.
This commit is contained in:
parent
e4a994d617
commit
160e819a1d
|
@ -254,10 +254,9 @@ _close_open_fds_safe(int start_fd, PyObject* py_fds_to_keep)
|
|||
{
|
||||
int fd_dir_fd;
|
||||
|
||||
fd_dir_fd = _Py_open(FD_DIR, O_RDONLY);
|
||||
fd_dir_fd = _Py_open_noraise(FD_DIR, O_RDONLY);
|
||||
if (fd_dir_fd == -1) {
|
||||
/* No way to get a list of open fds. */
|
||||
PyErr_Clear();
|
||||
_close_fds_by_brute_force(start_fd, py_fds_to_keep);
|
||||
return;
|
||||
} else {
|
||||
|
|
Loading…
Reference in New Issue