diff options
author | Yury Selivanov <yselivanov@sprymix.com> | 2016-05-16 15:38:39 -0400 |
---|---|---|
committer | Yury Selivanov <yselivanov@sprymix.com> | 2016-05-16 15:38:39 -0400 |
commit | 7661db622892c9731c502ccdd7af130cbfd23f5c (patch) | |
tree | 3d0d940b0a5a26a1a89e27f6e4969ae612a9cb9b /Lib/asyncio/base_events.py | |
parent | 7ed7ce6ee76c1e4aaa94151f156fb2ba5163b5b2 (diff) | |
download | cpython-git-7661db622892c9731c502ccdd7af130cbfd23f5c.tar.gz |
Issue #27041: asyncio: Add loop.create_future method
Diffstat (limited to 'Lib/asyncio/base_events.py')
-rw-r--r-- | Lib/asyncio/base_events.py | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/Lib/asyncio/base_events.py b/Lib/asyncio/base_events.py index ada178f37f..313cc316e5 100644 --- a/Lib/asyncio/base_events.py +++ b/Lib/asyncio/base_events.py @@ -209,7 +209,7 @@ class Server(events.AbstractServer): def wait_closed(self): if self.sockets is None or self._waiters is None: return - waiter = futures.Future(loop=self._loop) + waiter = self._loop.create_future() self._waiters.append(waiter) yield from waiter @@ -243,6 +243,10 @@ class BaseEventLoop(events.AbstractEventLoop): % (self.__class__.__name__, self.is_running(), self.is_closed(), self.get_debug())) + def create_future(self): + """Create a Future object attached to the loop.""" + return futures.Future(loop=self) + def create_task(self, coro): """Schedule a coroutine object. @@ -536,7 +540,7 @@ class BaseEventLoop(events.AbstractEventLoop): assert not args assert not isinstance(func, events.TimerHandle) if func._cancelled: - f = futures.Future(loop=self) + f = self.create_future() f.set_result(None) return f func, args = func._callback, func._args @@ -579,7 +583,7 @@ class BaseEventLoop(events.AbstractEventLoop): family=0, type=0, proto=0, flags=0): info = _ipaddr_info(host, port, family, type, proto) if info is not None: - fut = futures.Future(loop=self) + fut = self.create_future() fut.set_result([info]) return fut elif self._debug: @@ -720,7 +724,7 @@ class BaseEventLoop(events.AbstractEventLoop): def _create_connection_transport(self, sock, protocol_factory, ssl, server_hostname): protocol = protocol_factory() - waiter = futures.Future(loop=self) + waiter = self.create_future() if ssl: sslcontext = None if isinstance(ssl, bool) else ssl transport = self._make_ssl_transport( @@ -840,7 +844,7 @@ class BaseEventLoop(events.AbstractEventLoop): raise exceptions[0] protocol = protocol_factory() - waiter = futures.Future(loop=self) + waiter = self.create_future() transport = self._make_datagram_transport( sock, protocol, r_addr, waiter) if self._debug: @@ -979,7 +983,7 @@ class BaseEventLoop(events.AbstractEventLoop): @coroutine def connect_read_pipe(self, protocol_factory, pipe): protocol = protocol_factory() - waiter = futures.Future(loop=self) + waiter = self.create_future() transport = self._make_read_pipe_transport(pipe, protocol, waiter) try: @@ -996,7 +1000,7 @@ class BaseEventLoop(events.AbstractEventLoop): @coroutine def connect_write_pipe(self, protocol_factory, pipe): protocol = protocol_factory() - waiter = futures.Future(loop=self) + waiter = self.create_future() transport = self._make_write_pipe_transport(pipe, protocol, waiter) try: |