diff options
Diffstat (limited to 'fpicker/source/win32/asyncrequests.cxx')
-rw-r--r-- | fpicker/source/win32/asyncrequests.cxx | 5 |
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(); } |