mirror of
https://github.com/python/cpython.git
synced 2025-08-31 22:18:28 +00:00
bpo-46994: Accept explicit contextvars.Context in asyncio create_task() API (GH-31837)
This commit is contained in:
parent
2153daf0a0
commit
9523c0d84f
13 changed files with 209 additions and 65 deletions
|
@ -138,12 +138,15 @@ class TaskGroup:
|
|||
me = BaseExceptionGroup('unhandled errors in a TaskGroup', errors)
|
||||
raise me from None
|
||||
|
||||
def create_task(self, coro, *, name=None):
|
||||
def create_task(self, coro, *, name=None, context=None):
|
||||
if not self._entered:
|
||||
raise RuntimeError(f"TaskGroup {self!r} has not been entered")
|
||||
if self._exiting and self._unfinished_tasks == 0:
|
||||
raise RuntimeError(f"TaskGroup {self!r} is finished")
|
||||
task = self._loop.create_task(coro)
|
||||
if context is None:
|
||||
task = self._loop.create_task(coro)
|
||||
else:
|
||||
task = self._loop.create_task(coro, context=context)
|
||||
tasks._set_task_name(task, name)
|
||||
task.add_done_callback(self._on_task_done)
|
||||
self._unfinished_tasks += 1
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue