vcl/source/app/scheduler.cxx | 6 ++++++ 1 file changed, 6 insertions(+)
New commits: commit e63fbf524bf4bb1a247b55a31745a6ced1661532 Author: Noel Grandin <noel.gran...@collabora.co.uk> AuthorDate: Thu Nov 24 09:33:34 2022 +0200 Commit: Xisco Fauli <xiscofa...@libreoffice.org> CommitDate: Fri Nov 25 10:08:35 2022 +0100 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.gran...@collabora.co.uk> (cherry picked from commit 8b442d7fae17660b3665da2c1f7a084341987693) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143161 Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org> diff --git a/vcl/source/app/scheduler.cxx b/vcl/source/app/scheduler.cxx index 5da5c2465c60..927de71c4fbb 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",