From e738335c7f3a0c206970f29cf214d07be09e5975 Mon Sep 17 00:00:00 2001 From: Andrew Mirsky Date: Sat, 14 Jun 2025 23:30:10 -0400 Subject: [PATCH] for 'amqtt' (broker script) was creating a new event loop but not passing it to the broker, so the broker was running in one event loop and all of its coroutines were executing in another, not a supported behavior --- amqtt/broker.py | 2 +- amqtt/scripts/broker_script.py | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/amqtt/broker.py b/amqtt/broker.py index b8e2fd4..744ffb2 100644 --- a/amqtt/broker.py +++ b/amqtt/broker.py @@ -180,7 +180,7 @@ class Broker: self.config.update(config) self._build_listeners_config(self.config) - self._loop = loop or asyncio.new_event_loop() + self._loop = loop or asyncio.get_running_loop() self._servers: dict[str, Server] = {} self._init_states() self._sessions: dict[str, tuple[Session, BrokerProtocolHandler]] = {} diff --git a/amqtt/scripts/broker_script.py b/amqtt/scripts/broker_script.py index 6a469d3..8901ccc 100644 --- a/amqtt/scripts/broker_script.py +++ b/amqtt/scripts/broker_script.py @@ -54,11 +54,10 @@ def broker_main( typer.echo(f"❌ Config file error: {exc}", err=True) raise typer.Exit(code=1) from exc - loop = asyncio.new_event_loop() asyncio.set_event_loop(loop) try: - broker = Broker(config) + broker = Broker(config, loop=loop) except (BrokerError, ParserError, PluginError) as exc: typer.echo(f"❌ Broker failed to start: {exc}", err=True) raise typer.Exit(code=1) from exc