diff --git a/meshchatx/src/backend/web_audio_bridge.py b/meshchatx/src/backend/web_audio_bridge.py index 7d01846..2cbf0f3 100644 --- a/meshchatx/src/backend/web_audio_bridge.py +++ b/meshchatx/src/backend/web_audio_bridge.py @@ -91,9 +91,24 @@ class WebAudioBridge: self.tx_source: WebAudioSource | None = None self.rx_sink: WebAudioSink | None = None self.rx_tee: Tee | None = None - self.loop = asyncio.get_event_loop() + self._loop = None self.lock = threading.Lock() + @property + def loop(self): + if self._loop: + return self._loop + + try: + self._loop = asyncio.get_running_loop() + except RuntimeError: + # Fallback to finding it via AsyncUtils if possible + from .async_utils import AsyncUtils + + self._loop = AsyncUtils.main_loop + + return self._loop + def _tele(self): return getattr(self.telephone_manager, "telephone", None)