| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/lazy_instance.h" | 5 #include "base/lazy_instance.h" |
| 6 #include "base/logging.h" |
| 7 #include "base/single_thread_task_runner.h" |
| 6 #include "net/ssl/ssl_platform_key_task_runner.h" | 8 #include "net/ssl/ssl_platform_key_task_runner.h" |
| 7 | 9 |
| 8 namespace net { | 10 namespace net { |
| 9 | 11 |
| 10 SSLPlatformKeyTaskRunner::SSLPlatformKeyTaskRunner() { | 12 namespace { |
| 11 worker_pool_ = new base::SequencedWorkerPool(1, "Platform Key Thread"); | |
| 12 task_runner_ = worker_pool_->GetSequencedTaskRunnerWithShutdownBehavior( | |
| 13 worker_pool_->GetSequenceToken(), | |
| 14 base::SequencedWorkerPool::CONTINUE_ON_SHUTDOWN); | |
| 15 } | |
| 16 | |
| 17 SSLPlatformKeyTaskRunner::~SSLPlatformKeyTaskRunner() {} | |
| 18 | |
| 19 scoped_refptr<base::SequencedTaskRunner> | |
| 20 SSLPlatformKeyTaskRunner::task_runner() { | |
| 21 return task_runner_; | |
| 22 } | |
| 23 | 13 |
| 24 base::LazyInstance<SSLPlatformKeyTaskRunner>::Leaky g_platform_key_task_runner = | 14 base::LazyInstance<SSLPlatformKeyTaskRunner>::Leaky g_platform_key_task_runner = |
| 25 LAZY_INSTANCE_INITIALIZER; | 15 LAZY_INSTANCE_INITIALIZER; |
| 26 | 16 |
| 27 scoped_refptr<base::SequencedTaskRunner> GetSSLPlatformKeyTaskRunner() { | 17 } // namespace |
| 28 return g_platform_key_task_runner.Get().task_runner(); | 18 |
| 19 SSLPlatformKeyTaskRunner::SSLPlatformKeyTaskRunner() |
| 20 : worker_thread_("Platform Key Thread") { |
| 21 worker_thread_.Start(); |
| 22 } |
| 23 |
| 24 // static |
| 25 scoped_refptr<base::SingleThreadTaskRunner> SSLPlatformKeyTaskRunner::Get() { |
| 26 scoped_refptr<base::SingleThreadTaskRunner> ssl_task_runner = |
| 27 g_platform_key_task_runner.Get().worker_thread_.task_runner(); |
| 28 DCHECK(ssl_task_runner); |
| 29 return ssl_task_runner; |
| 29 } | 30 } |
| 30 | 31 |
| 31 } // namespace net | 32 } // namespace net |
| OLD | NEW |