From 04a8c7456aa1f0c8934db437f715ca3f8a7f89cd Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 23 Oct 2017 07:01:37 +0000 Subject: [PATCH] fix race condition causing timer warnings on window cleanup git-svn-id: https://xpra.org/svn/Xpra/trunk@17230 3bb7dfac-3a0b-4e04-842a-767bc560f471 --- src/xpra/server/window/window_source.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/xpra/server/window/window_source.py b/src/xpra/server/window/window_source.py index 644966a194..a933ac9830 100644 --- a/src/xpra/server/window/window_source.py +++ b/src/xpra/server/window/window_source.py @@ -1774,8 +1774,12 @@ def damage_packet_acked(self, damage_packet_sequence, width, height, decode_time if bytecount>0 and end_send_at>0: self.global_statistics.record_latency(self.wid, decode_time, start_send_at, end_send_at, pixels, bytecount) if self._damage_delayed is not None and self._damage_delayed_expired: - self.cancel_may_send_timer() - self.may_send_timer = self.idle_add(self._may_send_delayed) + def call_may_send_delayed(): + self.cancel_may_send_timer() + self.may_send_delayed() + #this function is called from the network thread, + #call via idle_add to prevent race conditions: + self.idle_add(call_may_send_delayed) if not self._damage_delayed: self.soft_expired = 0