summaryrefslogtreecommitdiffstats
path: root/fpicker
diff options
context:
space:
mode:
Diffstat (limited to 'fpicker')
-rw-r--r--fpicker/source/win32/asyncrequests.cxx5
1 files changed, 5 insertions, 0 deletions
diff --git a/fpicker/source/win32/asyncrequests.cxx b/fpicker/source/win32/asyncrequests.cxx
index 79a26f894437..665c0d1d6dc7 100644
--- a/fpicker/source/win32/asyncrequests.cxx
+++ b/fpicker/source/win32/asyncrequests.cxx
@@ -80,6 +80,11 @@ AsyncRequests::~AsyncRequests()
// the already destructed SolarMutex, which would crash LO on exit.
if (isRunning())
{
+ // tdf#123502: make sure we actually hold the mutex before releasing it
+ // UNO directly destroys the VistaFilePicker object, so we need GUI protection in there.
+ // But since we redirect GUI stuff to the async thread we also have to release it, so we
+ // can join it, if the thread currently blocks on the SolarMutex.
+ SolarMutexGuard aGuard;
SolarMutexReleaser aReleaser;
join();
}