vcl/source/app/svapp.cxx | 7 +++++-- vcl/win/source/app/salinst.cxx | 5 ++++- 2 files changed, 9 insertions(+), 3 deletions(-)
New commits: commit 5ff11f229b03eaca93880abed65e925fda3a661b Author: Michael Stahl <mst...@redhat.com> Date: Tue May 3 17:17:52 2016 +0200 tdf#99383 vcl: don't dispatch events from SolarMutexReleaser Having SolarMutexReleaser effectively do Reschedule() on WNT and not on other platforms doesn't seem such a good idea. Let's try to restrict it so that it still calls ImplSalYieldMutexAcquireWithWait() but no longer dispatches messages, timers and idles. (regression from 482c52e91fe41a52e68827e9bf64a9736427d517) Change-Id: I52a2c88e9c2473e35909bf270b9e3ae7acbe0d17 (cherry picked from commit ea3ce0b3073c72f474365e438ddabd19de915b76) Reviewed-on: https://gerrit.libreoffice.org/24623 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Miklos Vajna <vmik...@collabora.co.uk> diff --git a/vcl/source/app/svapp.cxx b/vcl/source/app/svapp.cxx index a18b91e..a5a01a1 100644 --- a/vcl/source/app/svapp.cxx +++ b/vcl/source/app/svapp.cxx @@ -515,8 +515,11 @@ inline bool ImplYield(bool i_bWait, bool i_bAllEvents, sal_uLong const nReleased DBG_TESTSOLARMUTEX(); // must be locked on return from Yield - // Process all Tasks - Scheduler::ProcessTaskScheduling(eResult == SalYieldResult::EVENT); + if (nReleased == 0) // tdf#99383 don't run stuff from ReAcquireSolarMutex + { + // Process all Tasks + Scheduler::ProcessTaskScheduling(eResult == SalYieldResult::EVENT); + } // flush lazy deleted objects if( pSVData->maAppData.mnDispatchLevel == 0 ) diff --git a/vcl/win/source/app/salinst.cxx b/vcl/win/source/app/salinst.cxx index 5cf6c3d..40e44d2 100644 --- a/vcl/win/source/app/salinst.cxx +++ b/vcl/win/source/app/salinst.cxx @@ -696,7 +696,10 @@ SalYieldResult WinSalInstance::DoYield(bool bWait, bool bHandleAllCurrentEvents, } else { - eDidWork = ImplSalYield( bWait, bHandleAllCurrentEvents ); + if (nReleased == 0) // tdf#99383 ReAcquireSolarMutex shouldn't Yield + { + eDidWork = ImplSalYield( bWait, bHandleAllCurrentEvents ); + } n = nCount; while ( n ) _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits