From: Christian Hergert Date: Sun, 30 Jan 2022 01:05:48 +0000 (-0800) Subject: macos: push to head of awaiting frames X-Git-Tag: archive/raspbian/4.6.5+ds-1+rpi1~1^2~19^2~4^2~22^2~13 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=519a44d2242c281fb8fd58dbc65456a53428d07d;p=gtk4.git macos: push to head of awaiting frames Always add to the head of awaiting frames as the list is processed in the opposite direction. --- diff --git a/gdk/macos/gdkmacosdisplay.c b/gdk/macos/gdkmacosdisplay.c index 051a921903..9507d65c88 100644 --- a/gdk/macos/gdkmacosdisplay.c +++ b/gdk/macos/gdkmacosdisplay.c @@ -987,7 +987,11 @@ _gdk_macos_display_add_frame_callback (GdkMacosDisplay *self, if (!queue_contains (&self->awaiting_frames, &surface->frame)) { - g_queue_push_tail_link (&self->awaiting_frames, &surface->frame); + /* Processing frames is always head to tail, so push to the + * head so that we don't possibly re-enter this right after + * adding to the queue. + */ + g_queue_push_head_link (&self->awaiting_frames, &surface->frame); if (self->awaiting_frames.length == 1) gdk_display_link_source_unpause ((GdkDisplayLinkSource *)self->frame_source);