From 2c363bf4bbb0b72fe037fde28eafb2b8b3a42c24 Mon Sep 17 00:00:00 2001 From: qstokkink Date: Mon, 25 Nov 2024 10:40:10 +0100 Subject: [PATCH] DEBUG/DROPME: Mac, what doing? --- ipv8/taskmanager.py | 20 ++++++++++++++++---- ipv8/test/test_taskmanager.py | 2 ++ 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/ipv8/taskmanager.py b/ipv8/taskmanager.py index 01b8d6568..318c26680 100644 --- a/ipv8/taskmanager.py +++ b/ipv8/taskmanager.py @@ -1,5 +1,6 @@ from __future__ import annotations +import asyncio import logging import time import traceback @@ -251,13 +252,24 @@ async def after_cancel() -> None: if not callable(task) or iscoroutinefunction(task): await cast(Awaitable, fut) - done_future.after_cancel_task = after_cancel() # type: ignore[attr-defined] - self.register_anonymous_task(f"[Catch shutdown] {basename}", catch_shutdown) - self.register_anonymous_task(f"[Run shutdown] {basename}", - shield(done_future.after_cancel_task)) # type: ignore[attr-defined] + t1 = self.register_anonymous_task(f"[Catch shutdown] {basename}", catch_shutdown) + inner_t2 = ensure_future(after_cancel()) + t2 = self.register_anonymous_task(f"[Run shutdown] {basename}", shield(inner_t2)) + + print() + print(t1) + print(inner_t2) + print(t2) + print(done_future) await sleep(0) # Enter both infinite loops + print(t1) + print(inner_t2) + print(t2) + print(done_future) + + return done_future def cancel_pending_task(self, name: Hashable) -> Future: diff --git a/ipv8/test/test_taskmanager.py b/ipv8/test/test_taskmanager.py index 98c4e982f..eddd6e0e9 100644 --- a/ipv8/test/test_taskmanager.py +++ b/ipv8/test/test_taskmanager.py @@ -301,6 +301,8 @@ async def test_register_shutdown_task(self) -> None: await self.tm.shutdown_task_manager() + print(fut) # TODO: Mac, what are you doing!? + self.assertTrue(fut.done()) self.assertTrue(sub_fut.cancelled())