diff options
author | Victor Stinner <victor.stinner@gmail.com> | 2015-01-09 20:32:05 (GMT) |
---|---|---|
committer | Victor Stinner <victor.stinner@gmail.com> | 2015-01-09 20:32:05 (GMT) |
commit | 70db9e428aa476682ca80369d09a968b35729845 (patch) | |
tree | 8ae8f3ec699f537280445f089804feac93bd35ae /Lib/asyncio | |
parent | 7eb10311be26e8f353530ed79476d4c859243401 (diff) | |
download | cpython-70db9e428aa476682ca80369d09a968b35729845.zip cpython-70db9e428aa476682ca80369d09a968b35729845.tar.gz cpython-70db9e428aa476682ca80369d09a968b35729845.tar.bz2 |
asyncio: sync with Tulip
* Tulip issue 184: FlowControlMixin constructor now get the event loop if the
loop parameter is not set. Add unit tests to ensure that constructor of
StreamReader and StreamReaderProtocol classes get the event loop.
* Remove outdated TODO/XXX
Diffstat (limited to 'Lib/asyncio')
-rw-r--r-- | Lib/asyncio/futures.py | 2 | ||||
-rw-r--r-- | Lib/asyncio/proactor_events.py | 3 | ||||
-rw-r--r-- | Lib/asyncio/selector_events.py | 1 | ||||
-rw-r--r-- | Lib/asyncio/streams.py | 10 | ||||
-rw-r--r-- | Lib/asyncio/unix_events.py | 5 |
5 files changed, 10 insertions, 11 deletions
diff --git a/Lib/asyncio/futures.py b/Lib/asyncio/futures.py index f46d008..e0e12f0 100644 --- a/Lib/asyncio/futures.py +++ b/Lib/asyncio/futures.py @@ -20,7 +20,6 @@ _FINISHED = 'FINISHED' _PY34 = sys.version_info >= (3, 4) -# TODO: Do we really want to depend on concurrent.futures internals? Error = concurrent.futures._base.Error CancelledError = concurrent.futures.CancelledError TimeoutError = concurrent.futures.TimeoutError @@ -30,7 +29,6 @@ STACK_DEBUG = logging.DEBUG - 1 # heavy-duty debugging class InvalidStateError(Error): """The operation is not allowed in this state.""" - # TODO: Show the future, its state, the method, and the required state. class _TracebackLogger: diff --git a/Lib/asyncio/proactor_events.py b/Lib/asyncio/proactor_events.py index 44a8197..0a4d068 100644 --- a/Lib/asyncio/proactor_events.py +++ b/Lib/asyncio/proactor_events.py @@ -487,7 +487,8 @@ class BaseProactorEventLoop(base_events.BaseEventLoop): self.call_soon(loop) def _process_events(self, event_list): - pass # XXX hard work currently done in poll + # Events are processed in the IocpProactor._poll() method + pass def _stop_accept_futures(self): for future in self._accept_futures.values(): diff --git a/Lib/asyncio/selector_events.py b/Lib/asyncio/selector_events.py index 58b61f1..307a9ad 100644 --- a/Lib/asyncio/selector_events.py +++ b/Lib/asyncio/selector_events.py @@ -145,7 +145,6 @@ class BaseSelectorEventLoop(base_events.BaseEventLoop): pass # False alarm. except OSError as exc: # There's nowhere to send the error, so just log it. - # TODO: Someone will want an error handler for this. if exc.errno in (errno.EMFILE, errno.ENFILE, errno.ENOBUFS, errno.ENOMEM): # Some platforms (e.g. Linux keep reporting the FD as diff --git a/Lib/asyncio/streams.py b/Lib/asyncio/streams.py index c77eb60..5a96b24 100644 --- a/Lib/asyncio/streams.py +++ b/Lib/asyncio/streams.py @@ -145,7 +145,10 @@ class FlowControlMixin(protocols.Protocol): """ def __init__(self, loop=None): - self._loop = loop # May be None; we may never need it. + if loop is None: + self._loop = events.get_event_loop() + else: + self._loop = loop self._paused = False self._drain_waiter = None self._connection_lost = False @@ -306,8 +309,9 @@ class StreamReader: # it also doubles as half the buffer limit. self._limit = limit if loop is None: - loop = events.get_event_loop() - self._loop = loop + self._loop = events.get_event_loop() + else: + self._loop = loop self._buffer = bytearray() self._eof = False # Whether we're done. self._waiter = None # A future. diff --git a/Lib/asyncio/unix_events.py b/Lib/asyncio/unix_events.py index 91e43cf..1a4d418 100644 --- a/Lib/asyncio/unix_events.py +++ b/Lib/asyncio/unix_events.py @@ -496,9 +496,6 @@ class _UnixWritePipeTransport(transports._FlowControlMixin, def can_write_eof(self): return True - # TODO: Make the relationships between write_eof(), close(), - # abort(), _fatal_error() and _close() more straightforward. - def write_eof(self): if self._closing: return @@ -897,7 +894,7 @@ class FastChildWatcher(BaseChildWatcher): class _UnixDefaultEventLoopPolicy(events.BaseDefaultEventLoopPolicy): - """XXX""" + """UNIX event loop policy with a watcher for child processes.""" _loop_factory = _UnixSelectorEventLoop def __init__(self): |