diff options
-rw-r--r-- | include/svtools/miscopt.hxx | 13 | ||||
-rw-r--r-- | include/svtools/slidesorterbaropt.hxx | 12 | ||||
-rw-r--r-- | svtools/source/config/accessibilityoptions.cxx | 10 | ||||
-rw-r--r-- | svtools/source/config/colorcfg.cxx | 11 | ||||
-rw-r--r-- | svtools/source/config/extcolorcfg.cxx | 10 | ||||
-rw-r--r-- | svtools/source/config/miscopt.cxx | 19 | ||||
-rw-r--r-- | svtools/source/config/slidesorterbaropt.cxx | 18 |
7 files changed, 38 insertions, 55 deletions
diff --git a/include/svtools/miscopt.hxx b/include/svtools/miscopt.hxx index 82b15340dc63..190de033c129 100644 --- a/include/svtools/miscopt.hxx +++ b/include/svtools/miscopt.hxx @@ -24,7 +24,6 @@ #include <unotools/options.hxx> #include <memory> -namespace osl { class Mutex; } template <typename Arg, typename Ret> class Link; class LinkParamNone; @@ -64,18 +63,6 @@ class SVT_DLLPUBLIC SvtMiscOptions final : public utl::detail::Options bool IconThemeWasSetAutomatically() const; private: - - /*-**************************************************************************************************** - @short return a reference to a static mutex - @descr These class is partially threadsafe (for de-/initialization only). - All access methods aren't safe! - We create a static mutex only for one ime and use at different times. - @return A reference to a static mutex member. - *//*-*****************************************************************************************************/ - - SVT_DLLPRIVATE static ::osl::Mutex& GetInitMutex(); - - private: std::shared_ptr<SvtMiscOptions_Impl> m_pImpl; }; // class SvtMiscOptions diff --git a/include/svtools/slidesorterbaropt.hxx b/include/svtools/slidesorterbaropt.hxx index 4456a857513b..9250838fafff 100644 --- a/include/svtools/slidesorterbaropt.hxx +++ b/include/svtools/slidesorterbaropt.hxx @@ -23,8 +23,6 @@ #include <unotools/options.hxx> #include <memory> -namespace osl { class Mutex; } - /** forward declaration to our private date container implementation We use these class as internal member to support small memory requirements. @@ -58,16 +56,6 @@ class SVT_DLLPUBLIC SvtSlideSorterBarOptions final : public utl::detail::Options private: - /** return a reference to a static mutex - - These class is partially threadsafe (for de-/initialization only). - All access methods aren't safe! - We create a static mutex only for one ime and use at different times. - - \return A reference to a static mutex member.*/ - SVT_DLLPRIVATE static ::osl::Mutex& GetInitMutex(); - - private: std::shared_ptr<SvtSlideSorterBarOptions_Impl> m_pImpl; }; diff --git a/svtools/source/config/accessibilityoptions.cxx b/svtools/source/config/accessibilityoptions.cxx index 05c113478402..4922326fa0f0 100644 --- a/svtools/source/config/accessibilityoptions.cxx +++ b/svtools/source/config/accessibilityoptions.cxx @@ -31,6 +31,7 @@ #include <vcl/settings.hxx> #include <vcl/svapp.hxx> #include <tools/diagnose_ex.h> +#include <mutex> #include "itemholder2.hxx" @@ -70,9 +71,9 @@ sal_Int32 SvtAccessibilityOptions::sm_nAccessibilityRefCount namespace { - ::osl::Mutex& SingletonMutex() + std::mutex& SingletonMutex() { - static ::osl::Mutex SINGLETON; + static std::mutex SINGLETON; return SINGLETON; } } @@ -337,10 +338,11 @@ SvtAccessibilityOptions::SvtAccessibilityOptions() { if (!utl::ConfigManager::IsFuzzing()) { - ::osl::MutexGuard aGuard( SingletonMutex() ); + std::unique_lock aGuard( SingletonMutex() ); if(!sm_pSingleImplConfig) { sm_pSingleImplConfig = new SvtAccessibilityOptions_Impl; + aGuard.unlock(); // because holdConfigItem will call this constructor svtools::ItemHolder2::holdConfigItem(EItem::AccessibilityOptions); } ++sm_nAccessibilityRefCount; @@ -351,7 +353,7 @@ SvtAccessibilityOptions::SvtAccessibilityOptions() SvtAccessibilityOptions::~SvtAccessibilityOptions() { //EndListening( *sm_pSingleImplConfig, sal_True ); - ::osl::MutexGuard aGuard( SingletonMutex() ); + std::unique_lock aGuard( SingletonMutex() ); if( !--sm_nAccessibilityRefCount ) { //if( sm_pSingleImplConfig->IsModified() ) diff --git a/svtools/source/config/colorcfg.cxx b/svtools/source/config/colorcfg.cxx index f72736afe6cb..3bbd37f6c9ce 100644 --- a/svtools/source/config/colorcfg.cxx +++ b/svtools/source/config/colorcfg.cxx @@ -32,7 +32,7 @@ #include <unotools/configpaths.hxx> #include <com/sun/star/uno/Sequence.h> #include <svl/poolitem.hxx> -#include <osl/mutex.hxx> +#include <mutex> #include "itemholder2.hxx" @@ -53,9 +53,9 @@ namespace svtools static sal_Int32 nColorRefCount_Impl = 0; namespace { - ::osl::Mutex& ColorMutex_Impl() + std::mutex& ColorMutex_Impl() { - static ::osl::Mutex SINGLETON; + static std::mutex SINGLETON; return SINGLETON; } } @@ -378,10 +378,11 @@ ColorConfig::ColorConfig() { if (utl::ConfigManager::IsFuzzing()) return; - ::osl::MutexGuard aGuard( ColorMutex_Impl() ); + std::unique_lock aGuard( ColorMutex_Impl() ); if ( !m_pImpl ) { m_pImpl = new ColorConfig_Impl; + aGuard.unlock(); // because holdConfigItem will call this constructor svtools::ItemHolder2::holdConfigItem(EItem::ColorConfig); } ++nColorRefCount_Impl; @@ -392,7 +393,7 @@ ColorConfig::~ColorConfig() { if (utl::ConfigManager::IsFuzzing()) return; - ::osl::MutexGuard aGuard( ColorMutex_Impl() ); + std::unique_lock aGuard( ColorMutex_Impl() ); m_pImpl->RemoveListener(this); if(!--nColorRefCount_Impl) { diff --git a/svtools/source/config/extcolorcfg.cxx b/svtools/source/config/extcolorcfg.cxx index bdeda2d4e8b9..2ad876b110f1 100644 --- a/svtools/source/config/extcolorcfg.cxx +++ b/svtools/source/config/extcolorcfg.cxx @@ -31,7 +31,7 @@ #include <com/sun/star/uno/Sequence.h> #include <comphelper/sequence.hxx> #include <svl/hint.hxx> -#include <osl/mutex.hxx> +#include <mutex> #include <sal/log.hxx> #include <osl/diagnose.h> @@ -50,9 +50,9 @@ namespace svtools static sal_Int32 nExtendedColorRefCount_Impl = 0; namespace { - ::osl::Mutex& ColorMutex_Impl() + std::mutex& ColorMutex_Impl() { - static ::osl::Mutex SINGLETON; + static std::mutex SINGLETON; return SINGLETON; } } @@ -508,7 +508,7 @@ IMPL_LINK( ExtendedColorConfig_Impl, DataChangedEventListener, VclSimpleEvent&, ExtendedColorConfig::ExtendedColorConfig() { - ::osl::MutexGuard aGuard( ColorMutex_Impl() ); + std::unique_lock aGuard( ColorMutex_Impl() ); if ( !m_pImpl ) m_pImpl = new ExtendedColorConfig_Impl; ++nExtendedColorRefCount_Impl; @@ -517,7 +517,7 @@ ExtendedColorConfig::ExtendedColorConfig() ExtendedColorConfig::~ExtendedColorConfig() { - ::osl::MutexGuard aGuard( ColorMutex_Impl() ); + std::unique_lock aGuard( ColorMutex_Impl() ); EndListening( *m_pImpl); if(!--nExtendedColorRefCount_Impl) { diff --git a/svtools/source/config/miscopt.cxx b/svtools/source/config/miscopt.cxx index 9c154b92dbc4..2462a5804659 100644 --- a/svtools/source/config/miscopt.cxx +++ b/svtools/source/config/miscopt.cxx @@ -32,6 +32,7 @@ #include <vcl/svapp.hxx> #include <vcl/settings.hxx> +#include <mutex> #include <vector> using namespace ::utl ; @@ -47,6 +48,13 @@ constexpr OUStringLiteral PROPERTYNAME_SYMBOLSET = u"SymbolSet"; constexpr OUStringLiteral PROPERTYNAME_ICONTHEME = u"SymbolStyle"; #define PROPERTYHANDLE_SYMBOLSTYLE 1 +static std::mutex & GetInitMutex() +{ + static std::mutex theSvtMiscOptionsMutex; + return theSvtMiscOptionsMutex; +} + + class SvtMiscOptions_Impl : public ConfigItem { private: @@ -363,13 +371,14 @@ std::weak_ptr<SvtMiscOptions_Impl> g_pMiscOptions; SvtMiscOptions::SvtMiscOptions() { // Global access, must be guarded (multithreading!). - MutexGuard aGuard( GetInitMutex() ); + std::unique_lock aGuard( GetInitMutex() ); m_pImpl = g_pMiscOptions.lock(); if( !m_pImpl ) { m_pImpl = std::make_shared<SvtMiscOptions_Impl>(); g_pMiscOptions = m_pImpl; + aGuard.unlock(); // because holdConfigItem will call this constructor svtools::ItemHolder2::holdConfigItem(EItem::MiscOptions); } } @@ -377,7 +386,7 @@ SvtMiscOptions::SvtMiscOptions() SvtMiscOptions::~SvtMiscOptions() { // Global access, must be guarded (multithreading!) - MutexGuard aGuard( GetInitMutex() ); + std::unique_lock aGuard( GetInitMutex() ); m_pImpl.reset(); } @@ -428,12 +437,6 @@ void SvtMiscOptions::SetIconTheme(const OUString& iconTheme) m_pImpl->SetIconTheme(iconTheme, SvtMiscOptions_Impl::SetModifiedFlag::SET); } -Mutex & SvtMiscOptions::GetInitMutex() -{ - static osl::Mutex theSvtMiscOptionsMutex; - return theSvtMiscOptionsMutex; -} - void SvtMiscOptions::AddListenerLink( const Link<LinkParamNone*,void>& rLink ) { m_pImpl->AddListenerLink( rLink ); diff --git a/svtools/source/config/slidesorterbaropt.cxx b/svtools/source/config/slidesorterbaropt.cxx index 22b5b6b5e768..784e0894ef27 100644 --- a/svtools/source/config/slidesorterbaropt.cxx +++ b/svtools/source/config/slidesorterbaropt.cxx @@ -26,6 +26,7 @@ #include <comphelper/lok.hxx> #include <comphelper/sequence.hxx> +#include <mutex> using namespace ::utl; using namespace ::osl; @@ -47,6 +48,13 @@ constexpr OUStringLiteral PROPERTYNAME_VISIBLE_SLIDESORTERVIEW = u"SlideSorterVi constexpr OUStringLiteral PROPERTYNAME_VISIBLE_DRAWVIEW = u"DrawView"; #define PROPERTYHANDLE_VISIBLE_DRAWVIEW 5 +static std::mutex & GetInitMutex() +{ + static std::mutex theSvtSlideSorterBarOptionsMutex; + return theSvtSlideSorterBarOptionsMutex; +} + + class SvtSlideSorterBarOptions_Impl : public ConfigItem { Sequence< OUString > m_seqPropertyNames; @@ -335,7 +343,7 @@ namespace { SvtSlideSorterBarOptions::SvtSlideSorterBarOptions() { // Global access, must be guarded (multithreading!). - MutexGuard aGuard( GetInitMutex() ); + std::unique_lock aGuard( GetInitMutex() ); m_pImpl = g_pSlideSorterBarOptions.lock(); if( !m_pImpl ) @@ -348,7 +356,7 @@ SvtSlideSorterBarOptions::SvtSlideSorterBarOptions() SvtSlideSorterBarOptions::~SvtSlideSorterBarOptions() { // Global access, must be guarded (multithreading!) - MutexGuard aGuard( GetInitMutex() ); + std::unique_lock aGuard( GetInitMutex() ); m_pImpl.reset(); } @@ -414,10 +422,4 @@ void SvtSlideSorterBarOptions::SetVisibleDrawView(bool bVisible) m_pImpl->SetVisibleDrawView( bVisible ); } -Mutex & SvtSlideSorterBarOptions::GetInitMutex() -{ - static osl::Mutex theSvtSlideSorterBarOptionsMutex; - return theSvtSlideSorterBarOptionsMutex; -} - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |