Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(151)

Side by Side Diff: base/threading/sequenced_task_runner_impl.cc

Issue 9663075: Implementation of SequencedTaskRunner based on SequencedWorkerPool. (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
Property Changes:
Added: svn:eol-style
+ LF
OLDNEW
(Empty)
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "base/threading/sequenced_task_runner_impl.h"
6
7 #include "base/logging.h"
8 #include "base/threading/sequenced_worker_pool.h"
9
10 namespace base {
11
12 SequencedTaskRunnerImpl::SequencedTaskRunnerImpl(
13 scoped_refptr<SequencedWorkerPool> pool)
14 : pool_(pool),
15 token_(pool_->GetSequenceToken()) {
16 }
17
18 SequencedTaskRunnerImpl::SequencedTaskRunnerImpl(
19 scoped_refptr<SequencedWorkerPool> pool,
20 SequencedWorkerPool::SequenceToken token)
21 : pool_(pool),
22 token_(token) {
23 }
24
25 SequencedTaskRunnerImpl::SequencedTaskRunnerImpl(
26 scoped_refptr<SequencedWorkerPool> pool,
27 const std::string& token_name)
28 : pool_(pool),
29 token_(pool_->GetNamedSequenceToken(token_name)) {
30 }
31
32 SequencedTaskRunnerImpl::~SequencedTaskRunnerImpl() {
33 }
34
35 bool SequencedTaskRunnerImpl::PostDelayedTask(
36 const tracked_objects::Location& from_here,
37 const Closure& task,
38 int64 delay_ms) {
39 return pool_->PostDelayedTask(from_here, task, delay_ms);
40 }
41
42 bool SequencedTaskRunnerImpl::PostDelayedTask(
43 const tracked_objects::Location& from_here,
44 const Closure& task,
45 TimeDelta delay) {
46 return pool_->PostDelayedTask(from_here, task, delay);
47 }
48
49 bool SequencedTaskRunnerImpl::RunsTasksOnCurrentThread() const {
50 return pool_->RunsTasksOnCurrentThread();
51 }
52
53 bool SequencedTaskRunnerImpl::PostNonNestableDelayedTask(
54 const tracked_objects::Location& from_here,
55 const Closure& task,
56 int64 delay_ms) {
57 // TODO(francoisk777@gmail.com): Change the following two statements once
58 // SequencedWorkerPool supports non-zero delays.
59 DCHECK_EQ(delay_ms, 0) << "SequencedTaskRunnerImpl does not yet "
60 "support non-zero delays; ignoring delay of " << delay_ms << " ms";
61 return pool_->PostSequencedWorkerTask(token_, from_here, task);
62 }
63
64 bool SequencedTaskRunnerImpl::PostNonNestableDelayedTask(
65 const tracked_objects::Location& from_here,
66 const Closure& task,
67 base::TimeDelta delay) {
68 // TODO(francoisk777@gmail.com): Change the following two statements once
69 // SequencedWorkerPool supports non-zero delays.
70 DCHECK_EQ(delay.InMillisecondsRoundedUp(), 0)
71 << "SequencedTaskRunnerImpl does not yet support non-zero delays; "
72 "ignoring delay of " << delay.InMillisecondsRoundedUp();
73 return pool_->PostSequencedWorkerTask(token_, from_here, task);
74 }
75
76 } // namespace base
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698