From a7fb9a6865dc73b77d059af2e64e718c750fb472 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20=C3=85dahl?= Date: Sat, 11 Feb 2023 11:42:21 +0100 Subject: [PATCH] wayland: Handle dispatch failing in a couple of more places Without doing this, we'll end up with risking GTK processes sitting eating 100% CPU instead of just exit(1):ing. --- gdk/wayland/gdkpopup-wayland.c | 10 +++++++++- gdk/wayland/gdktoplevel-wayland.c | 10 +++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/gdk/wayland/gdkpopup-wayland.c b/gdk/wayland/gdkpopup-wayland.c index 652cac8ef7..125e70e638 100644 --- a/gdk/wayland/gdkpopup-wayland.c +++ b/gdk/wayland/gdkpopup-wayland.c @@ -1388,7 +1388,15 @@ gdk_wayland_surface_present_popup (GdkWaylandPopup *wayland_popup, } while (wayland_popup->display_server.xdg_popup && !is_relayout_finished (surface)) - wl_display_dispatch_queue (display_wayland->wl_display, wayland_surface->event_queue); + { + if (wl_display_dispatch_queue (display_wayland->wl_display, + wayland_surface->event_queue) == -1) + { + g_message ("Error %d (%s) dispatching to Wayland display.", + errno, g_strerror (errno)); + _exit (1); + } + } if (wayland_popup->display_server.xdg_popup) { diff --git a/gdk/wayland/gdktoplevel-wayland.c b/gdk/wayland/gdktoplevel-wayland.c index bdaca587f9..7a74967c8d 100644 --- a/gdk/wayland/gdktoplevel-wayland.c +++ b/gdk/wayland/gdktoplevel-wayland.c @@ -2119,7 +2119,15 @@ gdk_wayland_toplevel_focus (GdkToplevel *toplevel, xdg_activation_token_v1_commit (token); while (startup_id == NULL) - wl_display_dispatch_queue (display_wayland->wl_display, event_queue); + { + if (wl_display_dispatch_queue (display_wayland->wl_display, + event_queue) == -1) + { + g_message ("Error %d (%s) dispatching to Wayland display.", + errno, g_strerror (errno)); + _exit (1); + } + } xdg_activation_token_v1_destroy (token); wl_event_queue_destroy (event_queue);