Commit ea6cdd79 authored by Sylvain Defresne's avatar Sylvain Defresne Committed by Commit Bot

Replace leaky singleton with base::NoDestructor

base::Singleton is deprecated in favor of base::NoDestructor. The
conversion is straight-forward for this leaky singleton and this
allow removing unnecessary scaffolding code.

Bug: none
Change-Id: I1db6f1fdd00b3532efbaea8367c8563cc5e28740
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2409495Reviewed-by: default avatarAdam Langley <agl@chromium.org>
Commit-Queue: Sylvain Defresne <sdefresne@chromium.org>
Cr-Commit-Position: refs/heads/master@{#806940}
parent 3c39a43f
...@@ -4,39 +4,14 @@ ...@@ -4,39 +4,14 @@
#include "crypto/mac_security_services_lock.h" #include "crypto/mac_security_services_lock.h"
#include "base/macros.h" #include "base/no_destructor.h"
#include "base/memory/singleton.h"
#include "base/synchronization/lock.h" #include "base/synchronization/lock.h"
namespace {
class SecurityServicesSingleton {
public:
static SecurityServicesSingleton* GetInstance() {
return base::Singleton<
SecurityServicesSingleton,
base::LeakySingletonTraits<SecurityServicesSingleton>>::get();
}
base::Lock& lock() { return lock_; }
private:
friend struct base::DefaultSingletonTraits<SecurityServicesSingleton>;
SecurityServicesSingleton() {}
~SecurityServicesSingleton() {}
base::Lock lock_;
DISALLOW_COPY_AND_ASSIGN(SecurityServicesSingleton);
};
} // namespace
namespace crypto { namespace crypto {
base::Lock& GetMacSecurityServicesLock() { base::Lock& GetMacSecurityServicesLock() {
return SecurityServicesSingleton::GetInstance()->lock(); static base::NoDestructor<base::Lock> lock;
return *lock;
} }
} // namespace crypto } // namespace crypto
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment