diff options
author | Michael Stahl <mstahl@redhat.com> | 2015-08-04 18:05:20 +0200 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2015-08-04 23:50:53 +0200 |
commit | 4231274abaec8e45538788bd67261044d7ef4bea (patch) | |
tree | 6faf543c678e088b523f93fd1be77bad1102b509 /vcl | |
parent | 1f45a84af05d53c58c1bb5ceeec070eb8255ef75 (diff) |
tdf#76845: vcl: main thread does not necessarily have SolarMutex
... at least not if VCLXWindowImpl::OnProcessCallbacks drops it and
calls arbitrary event handlers.
So try to make nested SolarMutexReleaser work in that case (although
poorly).
Change-Id: I1e2a1f4d6f42f826692696f7d92d1c3d71291f39
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/source/app/svapp.cxx | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/vcl/source/app/svapp.cxx b/vcl/source/app/svapp.cxx index 73c91756df52..c7dff0b1952d 100644 --- a/vcl/source/app/svapp.cxx +++ b/vcl/source/app/svapp.cxx @@ -394,9 +394,9 @@ void Application::ReAcquireSolarMutex(sal_uLong const nReleased) { // 0 would mean that events/timers will be handled without locking // SolarMutex (racy) - assert(nReleased != 0); + SAL_WARN_IF(nReleased == 0, "vcl", "SolarMutexReleaser without SolarMutex"); #ifdef WNT - if (ImplGetSVData()->mbDeInit) // do not Yield in DeInitVCL + if (nReleased == 0 || ImplGetSVData()->mbDeInit) //do not Yield in DeInitVCL AcquireSolarMutex(nReleased); else ImplYield(false, false, nReleased); |