From e635bf2e49797ecb976ce45a67fce2201a25ca68 Mon Sep 17 00:00:00 2001 From: Kumar Aditya Date: Fri, 24 Jan 2025 23:10:24 +0530 Subject: gh-128002: fix `test_all_tasks_different_thread` in asyncio (#129267) --- Lib/test/test_asyncio/test_free_threading.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Lib/test/test_asyncio/test_free_threading.py b/Lib/test/test_asyncio/test_free_threading.py index c91719c..6da398e 100644 --- a/Lib/test/test_asyncio/test_free_threading.py +++ b/Lib/test/test_asyncio/test_free_threading.py @@ -62,9 +62,9 @@ class TestFreeThreading: def test_all_tasks_different_thread(self) -> None: loop = None started = threading.Event() - + done = threading.Event() # used for main task not finishing early async def coro(): - await asyncio.sleep(0.01) + await asyncio.Future() lock = threading.Lock() tasks = set() @@ -77,6 +77,7 @@ class TestFreeThreading: with lock: asyncio.create_task(coro()) tasks = self.all_tasks(loop) + done.wait() runner = threading.Thread(target=lambda: asyncio.run(main())) @@ -86,11 +87,14 @@ class TestFreeThreading: self.assertSetEqual(tasks & self.all_tasks(loop), tasks) threads = [threading.Thread(target=check) for _ in range(10)] - threads.append(runner) + runner.start() with threading_helper.start_threads(threads): pass + done.set() + runner.join() + def test_run_coroutine_threadsafe(self) -> None: results = [] -- cgit v0.12