diff options
author | Victor Stinner <victor.stinner@gmail.com> | 2014-07-29 21:08:00 (GMT) |
---|---|---|
committer | Victor Stinner <victor.stinner@gmail.com> | 2014-07-29 21:08:00 (GMT) |
commit | f2ed889027f23ecf184a6ef52b7a7cc4921c3000 (patch) | |
tree | 5619b13a4d5d0f1862333fcdec614b6721fb75ae /Lib | |
parent | 3d4953a14b5b996432a8f8920d99f0ec1337b79e (diff) | |
download | cpython-f2ed889027f23ecf184a6ef52b7a7cc4921c3000.zip cpython-f2ed889027f23ecf184a6ef52b7a7cc4921c3000.tar.gz cpython-f2ed889027f23ecf184a6ef52b7a7cc4921c3000.tar.bz2 |
asyncio: Use the new os.set_blocking() function of Python 3.5 if available
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/asyncio/unix_events.py | 12 | ||||
-rw-r--r-- | Lib/test/test_asyncio/test_unix_events.py | 12 |
2 files changed, 14 insertions, 10 deletions
diff --git a/Lib/asyncio/unix_events.py b/Lib/asyncio/unix_events.py index 5020cc5..8d3e25e 100644 --- a/Lib/asyncio/unix_events.py +++ b/Lib/asyncio/unix_events.py @@ -259,10 +259,14 @@ class _UnixSelectorEventLoop(selector_events.BaseSelectorEventLoop): return server -def _set_nonblocking(fd): - flags = fcntl.fcntl(fd, fcntl.F_GETFL) - flags = flags | os.O_NONBLOCK - fcntl.fcntl(fd, fcntl.F_SETFL, flags) +if hasattr(os, 'set_blocking'): + def _set_nonblocking(fd): + os.set_blocking(fd, False) +else: + def _set_nonblocking(fd): + flags = fcntl.fcntl(fd, fcntl.F_GETFL) + flags = flags | os.O_NONBLOCK + fcntl.fcntl(fd, fcntl.F_SETFL, flags) class _UnixReadPipeTransport(transports.ReadTransport): diff --git a/Lib/test/test_asyncio/test_unix_events.py b/Lib/test/test_asyncio/test_unix_events.py index 099d4d5..e397598 100644 --- a/Lib/test/test_asyncio/test_unix_events.py +++ b/Lib/test/test_asyncio/test_unix_events.py @@ -306,9 +306,9 @@ class UnixReadPipeTransportTests(test_utils.TestCase): self.pipe = mock.Mock(spec_set=io.RawIOBase) self.pipe.fileno.return_value = 5 - fcntl_patcher = mock.patch('fcntl.fcntl') - fcntl_patcher.start() - self.addCleanup(fcntl_patcher.stop) + blocking_patcher = mock.patch('asyncio.unix_events._set_nonblocking') + blocking_patcher.start() + self.addCleanup(blocking_patcher.stop) fstat_patcher = mock.patch('os.fstat') m_fstat = fstat_patcher.start() @@ -469,9 +469,9 @@ class UnixWritePipeTransportTests(test_utils.TestCase): self.pipe = mock.Mock(spec_set=io.RawIOBase) self.pipe.fileno.return_value = 5 - fcntl_patcher = mock.patch('fcntl.fcntl') - fcntl_patcher.start() - self.addCleanup(fcntl_patcher.stop) + blocking_patcher = mock.patch('asyncio.unix_events._set_nonblocking') + blocking_patcher.start() + self.addCleanup(blocking_patcher.stop) fstat_patcher = mock.patch('os.fstat') m_fstat = fstat_patcher.start() |