summaryrefslogtreecommitdiffstats
path: root/Lib/asyncio/tasks.py
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2020-11-10 23:10:57 (GMT)
committerGitHub <noreply@github.com>2020-11-10 23:10:57 (GMT)
commit33922cb0aa0c81ebff91ab4e938a58dfec2acf19 (patch)
tree94e4994c7880c4bd5e069dd023286d8b394dcc70 /Lib/asyncio/tasks.py
parentf8bea0a44d718296a249bdb766b8dbc92f38e8df (diff)
downloadcpython-33922cb0aa0c81ebff91ab4e938a58dfec2acf19.zip
cpython-33922cb0aa0c81ebff91ab4e938a58dfec2acf19.tar.gz
cpython-33922cb0aa0c81ebff91ab4e938a58dfec2acf19.tar.bz2
bpo-42140: Improve asyncio.wait function (GH-22938)
GH- Improve asyncio.wait function The original code creates the futures set two times. We can create this set before, avoiding the second creation. This new behaviour [breaks the aiokafka library](https://github.com/aio-libs/aiokafka/pull/672), because it gives an iterator to that function, so the second iteration become empty. Automerge-Triggered-By: GH:1st1 (cherry picked from commit 7e5ef0a5713f968f6e942566c78bf57ffbef01de) Co-authored-by: Diogo Dutra <diogodutradamata@gmail.com>
Diffstat (limited to 'Lib/asyncio/tasks.py')
-rw-r--r--Lib/asyncio/tasks.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/Lib/asyncio/tasks.py b/Lib/asyncio/tasks.py
index ad31f5d..f486b67 100644
--- a/Lib/asyncio/tasks.py
+++ b/Lib/asyncio/tasks.py
@@ -400,13 +400,15 @@ async def wait(fs, *, loop=None, timeout=None, return_when=ALL_COMPLETED):
"and scheduled for removal in Python 3.10.",
DeprecationWarning, stacklevel=2)
- if any(coroutines.iscoroutine(f) for f in set(fs)):
+ fs = set(fs)
+
+ if any(coroutines.iscoroutine(f) for f in fs):
warnings.warn("The explicit passing of coroutine objects to "
"asyncio.wait() is deprecated since Python 3.8, and "
"scheduled for removal in Python 3.11.",
DeprecationWarning, stacklevel=2)
- fs = {ensure_future(f, loop=loop) for f in set(fs)}
+ fs = {ensure_future(f, loop=loop) for f in fs}
return await _wait(fs, timeout, return_when, loop)