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 |