mirror of
https://github.com/python/cpython.git
synced 2025-07-23 11:15:24 +00:00
Issue #23694: Enhance _Py_open(), it now raises exceptions
* _Py_open() now raises exceptions on error. If open() fails, it raises an OSError with the filename. * _Py_open() now releases the GIL while calling open() * Add _Py_open_noraise() when _Py_open() cannot be used because the GIL is not held
This commit is contained in:
parent
6562b29e13
commit
a555cfcb73
8 changed files with 71 additions and 45 deletions
|
@ -7930,7 +7930,7 @@ os_openpty_impl(PyModuleDef *module)
|
|||
|
||||
slave_fd = _Py_open(slave_name, O_RDWR);
|
||||
if (slave_fd < 0)
|
||||
goto posix_error;
|
||||
goto error;
|
||||
|
||||
#else
|
||||
master_fd = open(DEV_PTY_FILE, O_RDWR | O_NOCTTY); /* open master */
|
||||
|
@ -7958,8 +7958,8 @@ os_openpty_impl(PyModuleDef *module)
|
|||
goto posix_error;
|
||||
|
||||
slave_fd = _Py_open(slave_name, O_RDWR | O_NOCTTY); /* open slave */
|
||||
if (slave_fd < 0)
|
||||
goto posix_error;
|
||||
if (slave_fd == -1)
|
||||
goto error;
|
||||
|
||||
if (_Py_set_inheritable(master_fd, 0, NULL) < 0)
|
||||
goto posix_error;
|
||||
|
@ -7977,9 +7977,7 @@ os_openpty_impl(PyModuleDef *module)
|
|||
|
||||
posix_error:
|
||||
posix_error();
|
||||
#if defined(HAVE_OPENPTY) || defined(HAVE__GETPTY)
|
||||
error:
|
||||
#endif
|
||||
if (master_fd != -1)
|
||||
close(master_fd);
|
||||
if (slave_fd != -1)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue