[3.6] bpo-31334: Fix timeout in select.poll.poll() (GH-3277) (#4033)

Always pass -1, or INFTIM where defined, to the poll() system call when
a negative timeout is passed to the poll.poll([timeout]) method in the
select module. Various OSes throw an error with arbitrary negative
values.
(cherry picked from commit 6cfa927ceb)
This commit is contained in:
Miss Islington (bot) 2017-10-18 05:05:16 -07:00 committed by Serhiy Storchaka
parent be4e9cc769
commit 97abcabc19
4 changed files with 21 additions and 10 deletions

View file

@ -211,7 +211,7 @@ class PollTests(unittest.TestCase):
@unittest.skipUnless(threading, 'Threading required for this test.')
@reap_threads
def test_poll_blocks_with_negative_ms(self):
for timeout_ms in [None, -1, -1.0, -0.1, -1e-100]:
for timeout_ms in [None, -1000, -1, -1.0, -0.1, -1e-100]:
# Create two file descriptors. This will be used to unlock
# the blocking call to poll.poll inside the thread
r, w = os.pipe()