diff options
author | rsleevi@chromium.org <rsleevi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-01-26 01:09:10 +0000 |
---|---|---|
committer | rsleevi@chromium.org <rsleevi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-01-26 01:09:10 +0000 |
commit | 5f601a384fc70e3ee0e588f28506b73d1a72a77b (patch) | |
tree | 375edbc12c698a101880dbb8e3cd4ae282dc27c2 /base | |
parent | 4e90a2717503fa6c62306822392d51e1a8b9cc3e (diff) | |
download | chromium_src-5f601a384fc70e3ee0e588f28506b73d1a72a77b.zip chromium_src-5f601a384fc70e3ee0e588f28506b73d1a72a77b.tar.gz chromium_src-5f601a384fc70e3ee0e588f28506b73d1a72a77b.tar.bz2 |
Allow CDSA/CSSM to be used on worker threads in debug builds by making both the CSSM init singleton and the Mac Security Services lock singleton leaky.
This primarily affects the use of <keygen> in a debug build, as the RSA private key is generated on a worker thread and needs to hold the Mac Security Services lock.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/6354017
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72580 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base')
-rw-r--r-- | base/crypto/cssm_init.cc | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/base/crypto/cssm_init.cc b/base/crypto/cssm_init.cc index f588f30..eea9d1b 100644 --- a/base/crypto/cssm_init.cc +++ b/base/crypto/cssm_init.cc @@ -23,10 +23,11 @@ namespace { class CSSMInitSingleton { public: static CSSMInitSingleton* GetInstance() { - return Singleton<CSSMInitSingleton>::get(); + return Singleton<CSSMInitSingleton, + LeakySingletonTraits<CSSMInitSingleton> >::get(); } - CSSM_CSP_HANDLE csp_handle() const {return csp_handle_;} + CSSM_CSP_HANDLE csp_handle() const { return csp_handle_; } private: CSSMInitSingleton() : inited_(false), loaded_(false), csp_handle_(NULL) { @@ -87,18 +88,17 @@ class CSSMInitSingleton { class SecurityServicesSingleton { public: static SecurityServicesSingleton* GetInstance() { - return Singleton<SecurityServicesSingleton>::get(); + return Singleton<SecurityServicesSingleton, + LeakySingletonTraits<SecurityServicesSingleton> >::get(); } - ~SecurityServicesSingleton() {} - base::Lock& lock() { return lock_; } private: - friend class Singleton<SecurityServicesSingleton>; friend struct DefaultSingletonTraits<SecurityServicesSingleton>; SecurityServicesSingleton() {} + ~SecurityServicesSingleton() {} base::Lock lock_; |