diff --git a/libervia/cli/loops.py b/libervia/cli/loops.py index 4ae95c04..c9a56db4 100644 --- a/libervia/cli/loops.py +++ b/libervia/cli/loops.py @@ -21,6 +21,7 @@ import asyncio 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 @@ class QuitException(BaseException): 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):