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

Side by Side Diff: base/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 "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 // Thin wrapper for SequencedWorkerPool::SequenceToken used to obviate the
13 // need to include the SequencedWorkerPool header in this file's header.
14 class SequencedTaskRunnerImpl::SequenceToken {
15 public:
16 explicit SequenceToken(const SequencedWorkerPool::SequenceToken token)
17 : value_(token) {
18 }
19 operator SequencedWorkerPool::SequenceToken() const {
20 return value_;
21 }
22 private:
23 SequencedWorkerPool::SequenceToken value_;
24 };
25
26 SequencedTaskRunnerImpl::SequencedTaskRunnerImpl(
27 scoped_refptr<SequencedWorkerPool> pool)
28 : pool_(pool),
29 token_(new SequenceToken(pool_->GetSequenceToken())) {
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 DLOG_IF(WARNING, (delay_ms != 0)) << "SequencedTaskRunnerImpl does not yet "
akalin 2012/03/13 07:27:11 probably should change this to NOTREACHED, analogo
Francois 2012/03/14 15:43:31 Done.
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 DLOG_IF(WARNING, (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