[gtk/wip/chergert/macos-fixes: 3/4] macos: push to head of awaiting frames
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/wip/chergert/macos-fixes: 3/4] macos: push to head of awaiting frames
- Date: Sun, 30 Jan 2022 01:10:46 +0000 (UTC)
commit 3b72aa1fe9b5f514f103834236bbb0b56f8197e4
Author: Christian Hergert <christian hergert me>
Date: Sat Jan 29 17:05:48 2022 -0800
macos: push to head of awaiting frames
Always add to the head of awaiting frames as the list is processed
in the opposite direction.
gdk/macos/gdkmacosdisplay.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
---
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);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]