8000 Add context arg to Runner.run() · python/cpython@98e7a22 · GitHub
[go: up one dir, main page]

Skip to content

Commit 98e7a22

Browse files
committed
Add context arg to Runner.run()
1 parent 98e39db commit 98e7a22

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
lines changed

Lib/asyncio/runners.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -46,26 +46,27 @@ def close(self):
4646
if self._loop is None:
4747
return
4848
try:
49-
_cancel_all_tasks(self._loop)
50-
self._loop.run_until_complete(self._loop.shutdown_asyncgens())
51-
self._loop.run_until_complete(self._loop.shutdown_default_executor())
49+
loop = self._loop
50+
_cancel_all_tasks(loop)
51+
loop.run_until_complete(loop.shutdown_asyncgens())
52+
loop.run_until_complete(loop.shutdown_default_executor())
5253
finally:
53-
self._loop.close()
54+
loop.close()
5455
self._loop = None
5556

56-
def run(self, coro):
57+
def run(self, coro, *, context=None):
5758
"""Run a coroutine inside the embedded event loop."""
5859
if not coroutines.iscoroutine(coro):
5960
raise ValueError("a coroutine was expected, got {!r}".format(coro))
6061

61-
return self._loop.run_until_complete(coro)
62+
task = self._loop.create_task(coro, context=context)
63+
return self._loop.run_until_complete(task)
6264

6365
def get_loop(self):
6466
"""Returnb embedded event loop."""
6567
return self._loop
6668

6769

68-
6970
def run(main, *, debug=None):
7071
"""Execute the coroutine and return the result.
7172

0 commit comments

Comments
 (0)
0