From d18c29931b0bc889fff66bdbde89133544ba0529 Mon Sep 17 00:00:00 2001 From: Janne Koskinen Date: Tue, 24 Mar 2020 14:22:35 +0200 Subject: Fix leaking of callback timers Use two timers to create timeout trigger for framecallback. Removes multiple timers approach that is subject to race conditions. Fixes: QTBUG-82914 Change-Id: Ia10b1b4e055eee80f77076137066ecada683ba32 Reviewed-by: Eskil Abrahamsen Blomfeldt --- src/client/qwaylandwindow_p.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/client/qwaylandwindow_p.h') diff --git a/src/client/qwaylandwindow_p.h b/src/client/qwaylandwindow_p.h index 0369bd0c2..0b664bda0 100644 --- a/src/client/qwaylandwindow_p.h +++ b/src/client/qwaylandwindow_p.h @@ -58,6 +58,7 @@ #include #include #include +#include #include @@ -222,7 +223,8 @@ protected: WId mWindowId; bool mWaitingForFrameCallback = false; bool mFrameCallbackTimedOut = false; // Whether the frame callback has timed out - QAtomicInt mFrameCallbackTimerId = -1; // Started on commit, reset on frame callback + int mFrameCallbackCheckIntervalTimerId = -1; + QElapsedTimer mFrameCallbackElapsedTimer; struct ::wl_callback *mFrameCallback = nullptr; struct ::wl_event_queue *mFrameQueue = nullptr; QWaitCondition mFrameSyncWait; -- cgit v1.2.3