From 6c2c2a13aacf3309334c5a1d8bc5bef6f919d842 Mon Sep 17 00:00:00 2001 From: Lloyd Date: Sat, 20 Dec 2025 21:54:17 +0000 Subject: [PATCH] Refactor advert scheduling in MeshCLI: update to match C++ behavior by scheduling advert sends without waiting for completion. --- repeater/handler_helpers/mesh_cli.py | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/repeater/handler_helpers/mesh_cli.py b/repeater/handler_helpers/mesh_cli.py index 444e6c2..df83655 100644 --- a/repeater/handler_helpers/mesh_cli.py +++ b/repeater/handler_helpers/mesh_cli.py @@ -140,23 +140,12 @@ class MeshCLI: return "Error: Advert functionality not configured" try: - # Call the async callback synchronously (will be awaited by caller if needed) import asyncio - loop = asyncio.get_event_loop() - if loop.is_running(): - # Schedule the coroutine and don't wait for it - asyncio.create_task(self.send_advert_callback()) - logger.info("Advert send scheduled") - return "OK - Advert sent" - else: - # Run synchronously if no loop - result = loop.run_until_complete(self.send_advert_callback()) - if result: - return "OK - Advert sent" - else: - return "Error: Failed to send advert" + asyncio.create_task(self.send_advert_callback()) + logger.info("Advert scheduled for sending") + return "OK - Advert sent" except Exception as e: - logger.error(f"Failed to send advert: {e}", exc_info=True) + logger.error(f"Failed to schedule advert: {e}", exc_info=True) return f"Error: {e}" def _cmd_clock(self, command: str) -> str: