diff options
-rw-r--r-- | configmgr/source/configurationprovider.cxx | 8 |
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; { |