summaryrefslogtreecommitdiff
path: root/vcl/source/app
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2022-11-24 09:33:34 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2022-11-24 09:50:19 +0100
commit8b442d7fae17660b3665da2c1f7a084341987693 (patch)
tree31e1677c733e8cce34734127ed4097da3d33cc67 /vcl/source/app
parentc130063895c7a733ad121db1bf5fbceac38f6ad5 (diff)
tdf#148435 - avoid strange OS/X deadlock around AnyInput.
Apparently calling AnyInput on Mac and filtering for just input, gives you window creation / re-sizing events which then trigger idle paint events which then deadlock if called with the scheduler lock. So just don't do this optimisation. Change-Id: I2b518fba607815241d3bd60407cdf51a4357aef4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143200 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'vcl/source/app')
-rw-r--r--vcl/source/app/scheduler.cxx6
1 files changed, 6 insertions, 0 deletions
diff --git a/vcl/source/app/scheduler.cxx b/vcl/source/app/scheduler.cxx
index 7db89bcdaf42..251b972fe5ac 100644
--- a/vcl/source/app/scheduler.cxx
+++ b/vcl/source/app/scheduler.cxx
@@ -419,6 +419,11 @@ void Scheduler::CallbackTaskScheduling()
break;
}
+// tdf#148435 Apparently calling AnyInput on Mac and filtering for just input, gives
+// you window creation / re-sizing events which then trigger idle paint
+// events which then deadlock if called with the scheduler lock.
+// So since this is an optimisation, just don't do this on mac.
+#ifndef MACOSX
// Delay invoking tasks with idle priorities as long as there are user input or repaint events
// in the OS event queue. This will often effectively compress such events and repaint only
// once at the end, improving performance in cases such as repeated zooming with a complex document.
@@ -430,6 +435,7 @@ void Scheduler::CallbackTaskScheduling()
pMostUrgent = nullptr;
nMinPeriod = 0;
}
+#endif
if (InfiniteTimeoutMs != nMinPeriod)
SAL_INFO("vcl.schedule",