summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configmgr/source/configurationprovider.cxx8
1 files changed, 7 insertions, 1 deletions
diff --git a/configmgr/source/configurationprovider.cxx b/configmgr/source/configurationprovider.cxx
index 215cad7f6f14..a99309397e37 100644
--- a/configmgr/source/configurationprovider.cxx
+++ b/configmgr/source/configurationprovider.cxx
@@ -106,7 +106,7 @@ private:
virtual ~Service() override {}
- virtual void disposing(std::unique_lock<std::mutex>& /*rGuard*/) override { flushModifications(); }
+ virtual void disposing(std::unique_lock<std::mutex>& rGuard) override;
virtual OUString SAL_CALL getImplementationName() override
{
@@ -330,6 +330,12 @@ css::lang::Locale Service::getLocale() {
return loc;
}
+void Service::disposing(std::unique_lock<std::mutex>& rGuard) {
+ rGuard.unlock(); // just in case we call back into Service during dispose()
+ flushModifications();
+ rGuard.lock();
+}
+
void Service::flushModifications() const {
Components * components;
{