From a7007258bc028835a92b3b638f3db61ad8c5e01a Mon Sep 17 00:00:00 2001
From: Andrew Svetlov <andrew.svetlov@gmail.com>
Date: Wed, 16 Mar 2022 23:37:04 +0200
Subject: [PATCH] Cancel the inner task

---
 Lib/asyncio/tasks.py | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/Lib/asyncio/tasks.py b/Lib/asyncio/tasks.py
index 140539a924a..ef5c0f9669a 100644
--- a/Lib/asyncio/tasks.py
+++ b/Lib/asyncio/tasks.py
@@ -444,12 +444,11 @@ async def wait_for(fut, timeout):
     This function is a coroutine.
     """
 
-    if not futures.isfuture(fut):
-        # wrap a coroutine
-        fut = create_task(fut)
+    async def inner():
+        async with timeouts.timeout(timeout):
+            return await fut
 
-    async with timeouts.timeout(timeout):
-        return await fut
+    return await create_task(inner())
 
 
 async def _wait(fs, timeout, return_when, loop):
-- 
GitLab