From 186c51e0b0f176199d440f971ffb1e62290d8dda Mon Sep 17 00:00:00 2001 From: Tomasz Iwanek Date: Tue, 22 Jan 2013 08:57:42 +0100 Subject: [PATCH] Singleton guard thread removal [Issue#] N/A [Bug] Guard threads are not used [Cause] N/A [Solution] N/A [Verification] Build wrt-commons,wrt. Runs any widget correctly (this should be enogh to check singleton as guard were not used) Change-Id: Ia91f6f60c812436804842d9414274c4f9eea3e4d --- modules/core/include/dpl/singleton.h | 5 ----- modules/core/include/dpl/singleton_impl.h | 24 ------------------------ modules/core/include/dpl/singleton_safe_impl.h | 20 -------------------- 3 files changed, 49 deletions(-) diff --git a/modules/core/include/dpl/singleton.h b/modules/core/include/dpl/singleton.h index 4e5b281..44886d9 100644 --- a/modules/core/include/dpl/singleton.h +++ b/modules/core/include/dpl/singleton.h @@ -45,7 +45,6 @@ private: } typedef Optional OptionalThreadPtr; - OptionalThreadPtr m_guard; static Singleton &InternalInstance(); @@ -55,10 +54,6 @@ public: } static Class &Instance(); - - // Thread guarding - static void SetThreadGuard(Thread *thread); - static void ResetThreadGuard(); }; } // namespace DPL diff --git a/modules/core/include/dpl/singleton_impl.h b/modules/core/include/dpl/singleton_impl.h index 365ec15..6ebe48c 100644 --- a/modules/core/include/dpl/singleton_impl.h +++ b/modules/core/include/dpl/singleton_impl.h @@ -44,37 +44,13 @@ template Class &Singleton::Instance() { Singleton& instance = Singleton::InternalInstance(); - - if (!!instance.m_guard) - { - Assert(Thread::GetCurrentThread() == *instance.m_guard && - "Singleton thread guard failed. A forbidden call from foreign thread was detected!"); - } - return instance; } -// Thread guarding -template -void Singleton::SetThreadGuard(Thread *thread) -{ - Singleton& instance = Singleton::InternalInstance(); - instance.m_guard = OptionalThreadPtr(thread); -} - -template -void Singleton::ResetThreadGuard() -{ - Singleton& instance = Singleton::InternalInstance(); - instance.m_guard = OptionalThreadPtr::Null; -} - } // namespace DPL #define IMPLEMENT_SINGLETON(Type) \ template DPL::Singleton& DPL::Singleton::InternalInstance(); \ template Type& DPL::Singleton::Instance(); \ -template void DPL::Singleton::SetThreadGuard(DPL::Thread *thread); \ -template void DPL::Singleton::ResetThreadGuard(); #endif // DPL_SINGLETON_IMPL_H diff --git a/modules/core/include/dpl/singleton_safe_impl.h b/modules/core/include/dpl/singleton_safe_impl.h index 8fbe009..6bf6451 100644 --- a/modules/core/include/dpl/singleton_safe_impl.h +++ b/modules/core/include/dpl/singleton_safe_impl.h @@ -35,31 +35,11 @@ template<> \ Class &Singleton::Instance() \ { \ Singleton& instance = Singleton::InternalInstance(); \ - if (!!instance.m_guard) \ - { \ - Assert(Thread::GetCurrentThread() == *instance.m_guard && \ - "Singleton thread guard failed. A forbidden call from foreign thread was detected!");\ - } \ return instance; \ } \ \ -template<> \ -void Singleton::SetThreadGuard(Thread *thread) \ -{ \ - Singleton& instance = Singleton::InternalInstance(); \ - instance.m_guard = OptionalThreadPtr(thread); \ -} \ - \ -template<> \ -void Singleton::ResetThreadGuard() \ -{ \ - Singleton& instance = Singleton::InternalInstance(); \ - instance.m_guard = OptionalThreadPtr::Null; \ -} \ template Singleton& Singleton::InternalInstance(); \ template Class& Singleton::Instance(); \ -template void Singleton::SetThreadGuard(Thread *thread); \ -template void Singleton::ResetThreadGuard(); \ } // namespace DPL -- 2.7.4