summaryrefslogtreecommitdiff
path: root/uui
diff options
context:
space:
mode:
Diffstat (limited to 'uui')
-rw-r--r--uui/source/iahndl.cxx10
1 files changed, 8 insertions, 2 deletions
diff --git a/uui/source/iahndl.cxx b/uui/source/iahndl.cxx
index 0c9b9397aeeb..f3c7c3b94088 100644
--- a/uui/source/iahndl.cxx
+++ b/uui/source/iahndl.cxx
@@ -164,8 +164,11 @@ UUIInteractionHelper::handleRequest(
HandleData aHD(rRequest);
Link<void*,void> aLink(&aHD,handlerequest);
Application::PostUserEvent(aLink,this);
- SolarMutexReleaser aReleaser;
+ comphelper::SolarMutex& rSolarMutex = Application::GetSolarMutex();
+ sal_uInt32 nLockCount = (rSolarMutex.IsCurrentThread()) ? rSolarMutex.release(true) : 0;
aHD.wait();
+ if (nLockCount)
+ rSolarMutex.acquire(nLockCount);
return aHD.bHandled;
}
else
@@ -212,8 +215,11 @@ UUIInteractionHelper::getStringFromRequest(
HandleData aHD(rRequest);
Link<void*,void> aLink(&aHD,getstringfromrequest);
Application::PostUserEvent(aLink,this);
- SolarMutexReleaser aReleaser;
+ comphelper::SolarMutex& rSolarMutex = Application::GetSolarMutex();
+ sal_uInt32 nLockCount = (rSolarMutex.IsCurrentThread()) ? rSolarMutex.release(true) : 0;
aHD.wait();
+ if (nLockCount)
+ rSolarMutex.acquire(nLockCount);
return aHD.m_aResult;
}
else