async def async_loop(self) -> None:
        """Run the event loop

        Finalizes the Qtile instance on exit.
        """
        self._eventloop = asyncio.get_running_loop()
        # Set the event loop policy to facilitate access to main event loop
        asyncio.set_event_loop_policy(QtileEventLoopPolicy(self))
        self._stopped_event = asyncio.Event()
        self.core.qtile = self
        self.load_config(initial=True)
        self.core.setup_listener()

        faulthandler.enable(all_threads=True)
        faulthandler.register(signal.SIGUSR2, all_threads=True)

        try:
            signals: dict[signal.Signals, Callable]
            signals = {
                signal.SIGTERM: self.stop,
                signal.SIGINT: self.stop,
                signal.SIGHUP: self.stop,
                signal.SIGUSR1: self.reload_config,
            }
            if self.core.name == "x11":
                # the wayland backend installs its own SIGCHLD handler after
                # the XWayland X server has initialized (as a workaround). the
                # x11 backend can just do it here.
                signals[signal.SIGCHLD] = utils.reap_zombies
            async with (
                LoopContext(signals),
                ipc.Server(
                    self._prepare_socket_path(self.socket_path),
                    self.server.call,
                ),
            ):
                await self._stopped_event.wait()
        finally:
            self.finalize()
            self.core.remove_listener()
Run the event loop

        Finalizes the Qtile instance on exit.
        
libqtile/core/manager.py