summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--extmod/uasyncio/funcs.py3
-rw-r--r--tests/extmod/uasyncio_gather.py5
-rw-r--r--tests/extmod/uasyncio_gather.py.exp2
3 files changed, 10 insertions, 0 deletions
diff --git a/extmod/uasyncio/funcs.py b/extmod/uasyncio/funcs.py
index a1d38fbcb..96883e4fe 100644
--- a/extmod/uasyncio/funcs.py
+++ b/extmod/uasyncio/funcs.py
@@ -62,6 +62,9 @@ class _Remove:
async def gather(*aws, return_exceptions=False):
+ if not aws:
+ return []
+
def done(t, er):
# Sub-task "t" has finished, with exception "er".
nonlocal state
diff --git a/tests/extmod/uasyncio_gather.py b/tests/extmod/uasyncio_gather.py
index c081221c9..af6ea555a 100644
--- a/tests/extmod/uasyncio_gather.py
+++ b/tests/extmod/uasyncio_gather.py
@@ -53,6 +53,11 @@ async def main():
print("====")
+ # Gather with no awaitables
+ print(await asyncio.gather())
+
+ print("====")
+
# Test return_exceptions, where one task is cancelled and the other finishes normally
tasks = [asyncio.create_task(task(1)), asyncio.create_task(task(2))]
tasks[0].cancel()
diff --git a/tests/extmod/uasyncio_gather.py.exp b/tests/extmod/uasyncio_gather.py.exp
index a5ea47ab5..371d1ae60 100644
--- a/tests/extmod/uasyncio_gather.py.exp
+++ b/tests/extmod/uasyncio_gather.py.exp
@@ -9,6 +9,8 @@ Task C: Compute factorial(4)...
Task C: factorial(4) = 24
[2, 6, 24]
====
+[]
+====
start 2
end 2
[CancelledError(), 2]