summaryrefslogtreecommitdiff
path: root/asyncio/tasks.py
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2014-07-08 11:19:35 +0200
committerVictor Stinner <victor.stinner@gmail.com>2014-07-08 11:19:35 +0200
commit30416ecb91c8c81388cd77b4e2ca715a31a4c4ff (patch)
treec38ef7021edc21d192bf13bdc3f8e668b5da8c1e /asyncio/tasks.py
parent69686f82c0fad642fc04f2257ac006adf6cc3ac5 (diff)
downloadtrollius-30416ecb91c8c81388cd77b4e2ca715a31a4c4ff.tar.gz
Tulip issue #185: Add a create_task() method to event loops
The create_task() method can be overriden in custom event loop to implement their own task class. For example, greenio and Pulsar projects use their own task class. The create_task() method is now preferred over creating directly task using the Task class.
Diffstat (limited to 'asyncio/tasks.py')
-rw-r--r--asyncio/tasks.py4
1 files changed, 3 insertions, 1 deletions
diff --git a/asyncio/tasks.py b/asyncio/tasks.py
index 8c7217b..befc296 100644
--- a/asyncio/tasks.py
+++ b/asyncio/tasks.py
@@ -505,7 +505,9 @@ def async(coro_or_future, *, loop=None):
raise ValueError('loop argument must agree with Future')
return coro_or_future
elif coroutines.iscoroutine(coro_or_future):
- task = Task(coro_or_future, loop=loop)
+ if loop is None:
+ loop = events.get_event_loop()
+ task = loop.create_task(coro_or_future)
if task._source_traceback:
del task._source_traceback[-1]
return task