Index: base/threading/sequenced_worker_pool.cc |
=================================================================== |
--- base/threading/sequenced_worker_pool.cc (revision 140108) |
+++ base/threading/sequenced_worker_pool.cc (working copy) |
@@ -62,6 +62,9 @@ |
// TaskRunner implementation |
virtual bool PostDelayedTask(const tracked_objects::Location& from_here, |
const Closure& task, |
+ int64 delay_ms) OVERRIDE; |
+ virtual bool PostDelayedTask(const tracked_objects::Location& from_here, |
+ const Closure& task, |
TimeDelta delay) OVERRIDE; |
virtual bool RunsTasksOnCurrentThread() const OVERRIDE; |
@@ -73,6 +76,10 @@ |
bool PostDelayedTaskAssertZeroDelay( |
const tracked_objects::Location& from_here, |
const Closure& task, |
+ int64 delay_ms); |
+ bool PostDelayedTaskAssertZeroDelay( |
+ const tracked_objects::Location& from_here, |
+ const Closure& task, |
TimeDelta delay); |
const scoped_refptr<SequencedWorkerPool> pool_; |
@@ -95,6 +102,13 @@ |
bool SequencedWorkerPoolTaskRunner::PostDelayedTask( |
const tracked_objects::Location& from_here, |
const Closure& task, |
+ int64 delay_ms) { |
+ return PostDelayedTaskAssertZeroDelay(from_here, task, delay_ms); |
+} |
+ |
+bool SequencedWorkerPoolTaskRunner::PostDelayedTask( |
+ const tracked_objects::Location& from_here, |
+ const Closure& task, |
TimeDelta delay) { |
return PostDelayedTaskAssertZeroDelay(from_here, task, delay); |
} |
@@ -106,15 +120,24 @@ |
bool SequencedWorkerPoolTaskRunner::PostDelayedTaskAssertZeroDelay( |
const tracked_objects::Location& from_here, |
const Closure& task, |
- TimeDelta delay) { |
+ int64 delay_ms) { |
// TODO(francoisk777@gmail.com): Change the following two statements once |
// SequencedWorkerPool supports non-zero delays. |
- DCHECK_EQ(delay.InMillisecondsRoundedUp(), 0) |
+ DCHECK_EQ(delay_ms, 0) |
<< "SequencedWorkerPoolTaskRunner does not yet support non-zero delays"; |
return pool_->PostWorkerTaskWithShutdownBehavior( |
from_here, task, shutdown_behavior_); |
} |
+bool SequencedWorkerPoolTaskRunner::PostDelayedTaskAssertZeroDelay( |
+ const tracked_objects::Location& from_here, |
+ const Closure& task, |
+ TimeDelta delay) { |
+ return PostDelayedTaskAssertZeroDelay(from_here, |
+ task, |
+ delay.InMillisecondsRoundedUp()); |
+} |
+ |
// SequencedWorkerPoolSequencedTaskRunner ------------------------------------ |
// A SequencedTaskRunner which posts tasks to a SequencedWorkerPool with a |
// fixed sequence token. |
@@ -130,6 +153,9 @@ |
// TaskRunner implementation |
virtual bool PostDelayedTask(const tracked_objects::Location& from_here, |
const Closure& task, |
+ int64 delay_ms) OVERRIDE; |
+ virtual bool PostDelayedTask(const tracked_objects::Location& from_here, |
+ const Closure& task, |
TimeDelta delay) OVERRIDE; |
virtual bool RunsTasksOnCurrentThread() const OVERRIDE; |
@@ -137,6 +163,10 @@ |
virtual bool PostNonNestableDelayedTask( |
const tracked_objects::Location& from_here, |
const Closure& task, |
+ int64 delay_ms) OVERRIDE; |
+ virtual bool PostNonNestableDelayedTask( |
+ const tracked_objects::Location& from_here, |
+ const Closure& task, |
TimeDelta delay) OVERRIDE; |
private: |
@@ -147,6 +177,10 @@ |
bool PostDelayedTaskAssertZeroDelay( |
const tracked_objects::Location& from_here, |
const Closure& task, |
+ int64 delay_ms); |
+ bool PostDelayedTaskAssertZeroDelay( |
+ const tracked_objects::Location& from_here, |
+ const Closure& task, |
TimeDelta delay); |
const scoped_refptr<SequencedWorkerPool> pool_; |
@@ -174,6 +208,13 @@ |
bool SequencedWorkerPoolSequencedTaskRunner::PostDelayedTask( |
const tracked_objects::Location& from_here, |
const Closure& task, |
+ int64 delay_ms) { |
+ return PostDelayedTaskAssertZeroDelay(from_here, task, delay_ms); |
+} |
+ |
+bool SequencedWorkerPoolSequencedTaskRunner::PostDelayedTask( |
+ const tracked_objects::Location& from_here, |
+ const Closure& task, |
TimeDelta delay) { |
return PostDelayedTaskAssertZeroDelay(from_here, task, delay); |
} |
@@ -185,6 +226,13 @@ |
bool SequencedWorkerPoolSequencedTaskRunner::PostNonNestableDelayedTask( |
const tracked_objects::Location& from_here, |
const Closure& task, |
+ int64 delay_ms) { |
+ return PostDelayedTaskAssertZeroDelay(from_here, task, delay_ms); |
+} |
+ |
+bool SequencedWorkerPoolSequencedTaskRunner::PostNonNestableDelayedTask( |
+ const tracked_objects::Location& from_here, |
+ const Closure& task, |
TimeDelta delay) { |
return PostDelayedTaskAssertZeroDelay(from_here, task, delay); |
} |
@@ -192,16 +240,25 @@ |
bool SequencedWorkerPoolSequencedTaskRunner::PostDelayedTaskAssertZeroDelay( |
const tracked_objects::Location& from_here, |
const Closure& task, |
- TimeDelta delay) { |
+ int64 delay_ms) { |
// TODO(francoisk777@gmail.com): Change the following two statements once |
// SequencedWorkerPool supports non-zero delays. |
- DCHECK_EQ(delay.InMillisecondsRoundedUp(), 0) |
+ DCHECK_EQ(delay_ms, 0) |
<< "SequencedWorkerPoolSequencedTaskRunner does not yet support non-zero" |
" delays"; |
return pool_->PostSequencedWorkerTaskWithShutdownBehavior( |
token_, from_here, task, shutdown_behavior_); |
} |
+bool SequencedWorkerPoolSequencedTaskRunner::PostDelayedTaskAssertZeroDelay( |
+ const tracked_objects::Location& from_here, |
+ const Closure& task, |
+ TimeDelta delay) { |
+ return PostDelayedTaskAssertZeroDelay(from_here, |
+ task, |
+ delay.InMillisecondsRoundedUp()); |
+} |
+ |
} // namespace |
// Worker --------------------------------------------------------------------- |
@@ -976,6 +1033,15 @@ |
bool SequencedWorkerPool::PostDelayedTask( |
const tracked_objects::Location& from_here, |
const Closure& task, |
+ int64 delay_ms) { |
+ // TODO(akalin): Add support for non-zero delays. |
+ DCHECK_EQ(delay_ms, 0); |
+ return PostWorkerTask(from_here, task); |
+} |
+ |
+bool SequencedWorkerPool::PostDelayedTask( |
+ const tracked_objects::Location& from_here, |
+ const Closure& task, |
TimeDelta delay) { |
// TODO(akalin): Add support for non-zero delays. |
DCHECK_EQ(delay.InMillisecondsRoundedUp(), 0); |