mirror of
https://github.com/python/cpython.git
synced 2025-07-24 03:35:53 +00:00
Fix probable bug; if errno == EINTR, floatsleep() doesn't break out of
a Py_BEGIN_ALLOW_THREADS/Py_END_ALLOW_THREADS block, but it calls Py_BLOCK_THREADS anyway. The change moves Py_BLOCK_THREADS to inside the if, so it's only executed when the function actually returns unexpectedly.
This commit is contained in:
parent
70b5d47f71
commit
c24ca4b192
1 changed files with 1 additions and 1 deletions
|
@ -755,12 +755,12 @@ floatsleep(double secs)
|
|||
t.tv_usec = (long)(frac*1000000.0);
|
||||
Py_BEGIN_ALLOW_THREADS
|
||||
if (select(0, (fd_set *)0, (fd_set *)0, (fd_set *)0, &t) != 0) {
|
||||
Py_BLOCK_THREADS
|
||||
#ifdef EINTR
|
||||
if (errno != EINTR) {
|
||||
#else
|
||||
if (1) {
|
||||
#endif
|
||||
Py_BLOCK_THREADS
|
||||
PyErr_SetFromErrno(PyExc_IOError);
|
||||
return -1;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue