From 697818a22863887b8bab0708e6c402f8312bcb09 Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Thu, 1 Sep 2022 16:21:08 +0200 Subject: [PATCH] wlserver: start all Xwayland processes in parallel The next commit will need to inspect wlserver.wlr.xwayland_servers to figure out which wl_output global to expose. --- src/wlserver.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/wlserver.cpp b/src/wlserver.cpp index 99ba75f..babef80 100644 --- a/src/wlserver.cpp +++ b/src/wlserver.cpp @@ -794,16 +794,18 @@ bool wlserver_init( void ) { for (int i = 0; i < g_nXWaylandCount; i++) { auto server = std::make_unique(wlserver.display); + wlserver.wlr.xwayland_servers.emplace_back(std::move(server)); + } - while (!server->is_xwayland_ready()) { + for (size_t i = 0; i < wlserver.wlr.xwayland_servers.size(); i++) + { + while (!wlserver.wlr.xwayland_servers[i]->is_xwayland_ready()) { wl_display_flush_clients(wlserver.display); if (wl_event_loop_dispatch(wlserver.event_loop, -1) < 0) { wl_log.errorf("wl_event_loop_dispatch failed\n"); return false; } } - - wlserver.wlr.xwayland_servers.emplace_back(std::move(server)); } return true;