// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "crypto/mac_security_services_lock.h" #include "base/macros.h" #include "base/memory/singleton.h" #include "base/synchronization/lock.h" namespace { class SecurityServicesSingleton { public: static SecurityServicesSingleton* GetInstance() { return base::Singleton< SecurityServicesSingleton, base::LeakySingletonTraits>::get(); } base::Lock& lock() { return lock_; } private: friend struct base::DefaultSingletonTraits; SecurityServicesSingleton() {} ~SecurityServicesSingleton() {} base::Lock lock_; DISALLOW_COPY_AND_ASSIGN(SecurityServicesSingleton); }; } // namespace namespace crypto { base::Lock& GetMacSecurityServicesLock() { return SecurityServicesSingleton::GetInstance()->lock(); } } // namespace crypto