# HG changeset patch # User Goffi # Date 1698843953 -3600 # Node ID ba8ddfdd334f7a8be76b2aa6306edae2d1d7416b # Parent 13dd5660c28f946fb52ce7a7ebf06d327d0fa3aa cli (loops): run GLib loop in same thread as asyncio: use the new `install_glib_asyncio_iteration` to run GLib in the same thread as asyncio. rel 426 diff -r 13dd5660c28f -r ba8ddfdd334f libervia/cli/loops.py --- a/libervia/cli/loops.py Wed Nov 01 14:04:25 2023 +0100 +++ b/libervia/cli/loops.py Wed Nov 01 14:05:53 2023 +0100 @@ -21,6 +21,7 @@ import logging as log from libervia.backend.core.i18n import _ from libervia.cli.constants import Const as C +from libervia.frontends.tools import aio log.basicConfig(level=log.WARNING, format='[%(name)s] %(message)s') @@ -38,23 +39,22 @@ def get_libervia_cli_loop(bridge_name): if 'dbus' in bridge_name: import signal - import threading - from gi.repository import GLib class LiberviaCLILoop: + def __init__(self): + self.loop = loop = asyncio.get_event_loop() + def run(self, libervia_cli, args, namespace): + aio.install_glib_asyncio_iteration() signal.signal(signal.SIGINT, self._on_sigint) - self._glib_loop = GLib.MainLoop() - threading.Thread(target=self._glib_loop.run).start() - loop = asyncio.get_event_loop() + loop = self.loop loop.run_until_complete(libervia_cli.main(args=args, namespace=namespace)) loop.run_forever() def quit(self, exit_code): loop = asyncio.get_event_loop() loop.stop() - self._glib_loop.quit() sys.exit(exit_code) def call_later(self, delay, callback, *args):