bpo-44219: Release the GIL during isatty syscalls (GH-28250)

Release the GIL while performing isatty() system calls on arbitrary
file descriptors. In particular, this affects os.isatty(),
os.device_encoding() and io.TextIOWrapper. By extension,
io.open() in text mode is also affected.
This commit is contained in:
Vincent Michel 2021-09-09 15:12:03 +02:00 committed by GitHub
parent 04676b6946
commit 06148b1870
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 20 additions and 2 deletions

View file

@ -10066,9 +10066,11 @@ os_isatty_impl(PyObject *module, int fd)
/*[clinic end generated code: output=6a48c8b4e644ca00 input=08ce94aa1eaf7b5e]*/
{
int return_value;
Py_BEGIN_ALLOW_THREADS
_Py_BEGIN_SUPPRESS_IPH
return_value = isatty(fd);
_Py_END_SUPPRESS_IPH
Py_END_ALLOW_THREADS
return return_value;
}