This method is a :ref:`coroutine <coroutine>`, similar to
:meth:`socket.getnameinfo` function but non-blocking.
+.. versionchanged:: 3.7
+ Both *getaddrinfo* and *getnameinfo* methods were always documented
+ to return a coroutine, but prior to Python 3.7 they were, in fact,
+ returning :class:`asyncio.Future` objects. Starting with Python 3.7
+ both methods are coroutines.
+
Connect pipes
-------------
pool of processes). By default, an event loop uses a thread pool executor
(:class:`~concurrent.futures.ThreadPoolExecutor`).
-.. coroutinemethod:: AbstractEventLoop.run_in_executor(executor, func, \*args)
+.. method:: AbstractEventLoop.run_in_executor(executor, func, \*args)
Arrange for a *func* to be called in the specified executor.
:ref:`Use functools.partial to pass keywords to the *func*
<asyncio-pass-keywords>`.
+ This method returns a :class:`asyncio.Future` object.
+
.. versionchanged:: 3.5.3
:meth:`BaseEventLoop.run_in_executor` no longer configures the
``max_workers`` of the thread pool executor it creates, instead
(:class:`~concurrent.futures.ThreadPoolExecutor`) to set the
default.
- .. versionchanged:: 3.7
- Even though the method was always documented as a coroutine
- method, before Python 3.7 it returned a :class:`Future`.
- Since Python 3.7, this is an ``async def`` method.
-
.. method:: AbstractEventLoop.set_default_executor(executor)
Set the default executor used by :meth:`run_in_executor`.
self._write_to_self()
return handle
- async def run_in_executor(self, executor, func, *args):
+ def run_in_executor(self, executor, func, *args):
self._check_closed()
if self._debug:
self._check_callback(func, 'run_in_executor')
if executor is None:
executor = concurrent.futures.ThreadPoolExecutor()
self._default_executor = executor
- return await futures.wrap_future(
+ return futures.wrap_future(
executor.submit(func, *args), loop=self)
def set_default_executor(self, executor):
def task_factory(loop, coro):
raise NameError
- run = self.loop.create_task(
- self.loop.run_in_executor(
- None, lambda: self.target(advance_coro=True)))
+ run = self.loop.run_in_executor(
+ None, lambda: self.target(advance_coro=True))
# Set exception handler
callback = test_utils.MockCallback()
Convert asyncio functions that were documented as coroutines to coroutines.
Affected functions: loop.sock_sendall, loop.sock_recv, loop.sock_accept,
-loop.run_in_executor, loop.getaddrinfo, loop.getnameinfo.
+loop.getaddrinfo, loop.getnameinfo.
..