diff options
author | tedvessenes@gmail.com <tedvessenes@gmail.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-01 21:33:00 +0000 |
---|---|---|
committer | tedvessenes@gmail.com <tedvessenes@gmail.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-01 21:33:00 +0000 |
commit | bb8074e9927ffb769a3683e9aa11f899a4506fbe (patch) | |
tree | 1cea8268708d35fc7dc43a423dd60e28ed54b54d | |
parent | 12382874042ef4a748011b0fb482af5e91b83a03 (diff) | |
download | chromium_src-bb8074e9927ffb769a3683e9aa11f899a4506fbe.zip chromium_src-bb8074e9927ffb769a3683e9aa11f899a4506fbe.tar.gz chromium_src-bb8074e9927ffb769a3683e9aa11f899a4506fbe.tar.bz2 |
Remove old PostDelayedTask interfaces that use int ms instead of TimeDelta.
BUG=108171
Review URL: https://chromiumcodereview.appspot.com/9703053
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@140102 0039d316-1c4b-4281-b951-d872f2087c98
28 files changed, 162 insertions, 294 deletions
diff --git a/base/message_loop.cc b/base/message_loop.cc index a207659..5c3b2bf 100644 --- a/base/message_loop.cc +++ b/base/message_loop.cc @@ -258,48 +258,37 @@ void MessageLoop::RemoveDestructionObserver( void MessageLoop::PostTask( const tracked_objects::Location& from_here, const base::Closure& task) { DCHECK(!task.is_null()) << from_here.ToString(); - PendingTask pending_task(from_here, task, CalculateDelayedRuntime(0), true); + PendingTask pending_task( + from_here, task, CalculateDelayedRuntime(TimeDelta()), true); AddToIncomingQueue(&pending_task); } void MessageLoop::PostDelayedTask( const tracked_objects::Location& from_here, const base::Closure& task, - int64 delay_ms) { + TimeDelta delay) { DCHECK(!task.is_null()) << from_here.ToString(); - PendingTask pending_task(from_here, task, - CalculateDelayedRuntime(delay_ms), true); + PendingTask pending_task( + from_here, task, CalculateDelayedRuntime(delay), true); AddToIncomingQueue(&pending_task); } -void MessageLoop::PostDelayedTask( - const tracked_objects::Location& from_here, - const base::Closure& task, - base::TimeDelta delay) { - PostDelayedTask(from_here, task, delay.InMillisecondsRoundedUp()); -} - void MessageLoop::PostNonNestableTask( const tracked_objects::Location& from_here, const base::Closure& task) { DCHECK(!task.is_null()) << from_here.ToString(); - PendingTask pending_task(from_here, task, CalculateDelayedRuntime(0), false); - AddToIncomingQueue(&pending_task); -} - -void MessageLoop::PostNonNestableDelayedTask( - const tracked_objects::Location& from_here, const base::Closure& task, - int64 delay_ms) { - DCHECK(!task.is_null()) << from_here.ToString(); - PendingTask pending_task(from_here, task, - CalculateDelayedRuntime(delay_ms), false); + PendingTask pending_task( + from_here, task, CalculateDelayedRuntime(TimeDelta()), false); AddToIncomingQueue(&pending_task); } void MessageLoop::PostNonNestableDelayedTask( const tracked_objects::Location& from_here, const base::Closure& task, - base::TimeDelta delay) { - PostNonNestableDelayedTask(from_here, task, delay.InMillisecondsRoundedUp()); + TimeDelta delay) { + DCHECK(!task.is_null()) << from_here.ToString(); + PendingTask pending_task( + from_here, task, CalculateDelayedRuntime(delay), false); + AddToIncomingQueue(&pending_task); } void MessageLoop::Run() { @@ -543,11 +532,10 @@ bool MessageLoop::DeletePendingTasks() { return did_work; } -TimeTicks MessageLoop::CalculateDelayedRuntime(int64 delay_ms) { +TimeTicks MessageLoop::CalculateDelayedRuntime(TimeDelta delay) { TimeTicks delayed_run_time; - if (delay_ms > 0) { - delayed_run_time = - TimeTicks::Now() + TimeDelta::FromMilliseconds(delay_ms); + if (delay > TimeDelta()) { + delayed_run_time = TimeTicks::Now() + delay; #if defined(OS_WIN) if (high_resolution_timer_expiration_.is_null()) { @@ -556,8 +544,8 @@ TimeTicks MessageLoop::CalculateDelayedRuntime(int64 delay_ms) { // which as a percentage is pretty inaccurate. So enable high // res timers for any timer which is within 2x of the granularity. // This is a tradeoff between accuracy and power management. - bool needs_high_res_timers = - delay_ms < (2 * base::Time::kMinLowResolutionThresholdMs); + bool needs_high_res_timers = delay.InMilliseconds() < + (2 * base::Time::kMinLowResolutionThresholdMs); if (needs_high_res_timers) { if (base::Time::ActivateHighResolutionTimer(true)) { high_resolution_timer_expiration_ = TimeTicks::Now() + @@ -567,7 +555,7 @@ TimeTicks MessageLoop::CalculateDelayedRuntime(int64 delay_ms) { } #endif } else { - DCHECK_EQ(delay_ms, 0) << "delay should not be negative"; + DCHECK_EQ(delay.InMilliseconds(), 0) << "delay should not be negative"; } #if defined(OS_WIN) diff --git a/base/message_loop.h b/base/message_loop.h index d78b58a..a92ff7e 100644 --- a/base/message_loop.h +++ b/base/message_loop.h @@ -165,10 +165,6 @@ class BASE_EXPORT MessageLoop : public base::MessagePump::Delegate { void PostDelayedTask( const tracked_objects::Location& from_here, - const base::Closure& task, int64 delay_ms); - - void PostDelayedTask( - const tracked_objects::Location& from_here, const base::Closure& task, base::TimeDelta delay); @@ -178,10 +174,6 @@ class BASE_EXPORT MessageLoop : public base::MessagePump::Delegate { void PostNonNestableDelayedTask( const tracked_objects::Location& from_here, - const base::Closure& task, int64 delay_ms); - - void PostNonNestableDelayedTask( - const tracked_objects::Location& from_here, const base::Closure& task, base::TimeDelta delay); @@ -449,7 +441,7 @@ class BASE_EXPORT MessageLoop : public base::MessagePump::Delegate { bool DeletePendingTasks(); // Calculates the time at which a PendingTask should run. - base::TimeTicks CalculateDelayedRuntime(int64 delay_ms); + base::TimeTicks CalculateDelayedRuntime(base::TimeDelta delay); // Start recording histogram info about events and action IF it was enabled // and IF the statistics recorder can accept a registration of our histogram. diff --git a/base/message_loop_proxy_impl.cc b/base/message_loop_proxy_impl.cc index 9f6cb1f..b4ca210 100644 --- a/base/message_loop_proxy_impl.cc +++ b/base/message_loop_proxy_impl.cc @@ -12,24 +12,6 @@ namespace base { MessageLoopProxyImpl::~MessageLoopProxyImpl() { } -// This function will be removed later in the fixing of CR Bug #108171. -bool MessageLoopProxyImpl::PostDelayedTask( - const tracked_objects::Location& from_here, - const base::Closure& task, - int64 delay_ms) { - return PostDelayedTask( - from_here, task, base::TimeDelta::FromMilliseconds(delay_ms)); -} - -// This function will be removed later in the fixing of CR Bug #108171. -bool MessageLoopProxyImpl::PostNonNestableDelayedTask( - const tracked_objects::Location& from_here, - const base::Closure& task, - int64 delay_ms) { - return PostNonNestableDelayedTask( - from_here, task, base::TimeDelta::FromMilliseconds(delay_ms)); -} - bool MessageLoopProxyImpl::PostDelayedTask( const tracked_objects::Location& from_here, const base::Closure& task, diff --git a/base/message_loop_proxy_impl.h b/base/message_loop_proxy_impl.h index 140c244..fd28194 100644 --- a/base/message_loop_proxy_impl.h +++ b/base/message_loop_proxy_impl.h @@ -21,17 +21,10 @@ class BASE_EXPORT MessageLoopProxyImpl : public MessageLoopProxy { // MessageLoopProxy implementation virtual bool PostDelayedTask(const tracked_objects::Location& from_here, const base::Closure& task, - int64 delay_ms) OVERRIDE; - virtual bool PostDelayedTask(const tracked_objects::Location& from_here, - const base::Closure& task, base::TimeDelta delay) OVERRIDE; virtual bool PostNonNestableDelayedTask( const tracked_objects::Location& from_here, const base::Closure& task, - int64 delay_ms) OVERRIDE; - virtual bool PostNonNestableDelayedTask( - const tracked_objects::Location& from_here, - const base::Closure& task, base::TimeDelta delay) OVERRIDE; virtual bool RunsTasksOnCurrentThread() const OVERRIDE; diff --git a/base/sequenced_task_runner.cc b/base/sequenced_task_runner.cc index bab7d1c..00d4048 100644 --- a/base/sequenced_task_runner.cc +++ b/base/sequenced_task_runner.cc @@ -11,7 +11,7 @@ namespace base { bool SequencedTaskRunner::PostNonNestableTask( const tracked_objects::Location& from_here, const Closure& task) { - return PostNonNestableDelayedTask(from_here, task, 0); + return PostNonNestableDelayedTask(from_here, task, base::TimeDelta()); } bool SequencedTaskRunner::DeleteSoonInternal( diff --git a/base/sequenced_task_runner.h b/base/sequenced_task_runner.h index 0db9128f..5e0c89f 100644 --- a/base/sequenced_task_runner.h +++ b/base/sequenced_task_runner.h @@ -114,11 +114,6 @@ class BASE_EXPORT SequencedTaskRunner : public TaskRunner { virtual bool PostNonNestableDelayedTask( const tracked_objects::Location& from_here, const Closure& task, - int64 delay_ms) = 0; - - virtual bool PostNonNestableDelayedTask( - const tracked_objects::Location& from_here, - const Closure& task, base::TimeDelta delay) = 0; // Submits a non-nestable task to delete the given object. Returns diff --git a/base/task_runner.cc b/base/task_runner.cc index 734674f..b0563d4 100644 --- a/base/task_runner.cc +++ b/base/task_runner.cc @@ -42,7 +42,7 @@ bool PostTaskAndReplyTaskRunner::PostTask( bool TaskRunner::PostTask(const tracked_objects::Location& from_here, const Closure& task) { - return PostDelayedTask(from_here, task, 0); + return PostDelayedTask(from_here, task, base::TimeDelta()); } bool TaskRunner::PostTaskAndReply( diff --git a/base/task_runner.h b/base/task_runner.h index 894eb87..c1e1758 100644 --- a/base/task_runner.h +++ b/base/task_runner.h @@ -72,11 +72,6 @@ class BASE_EXPORT TaskRunner // // It is valid for an implementation to ignore |delay_ms|; that is, // to have PostDelayedTask behave the same as PostTask. - // - // TODO(tedv): Make PostDelayedTask use TimeDelta instead. - virtual bool PostDelayedTask(const tracked_objects::Location& from_here, - const Closure& task, - int64 delay_ms) = 0; virtual bool PostDelayedTask(const tracked_objects::Location& from_here, const Closure& task, base::TimeDelta delay) = 0; diff --git a/base/threading/platform_thread.h b/base/threading/platform_thread.h index 3843ce5..fc64f78 100644 --- a/base/threading/platform_thread.h +++ b/base/threading/platform_thread.h @@ -64,9 +64,6 @@ class BASE_EXPORT PlatformThread { // Yield the current thread so another thread can be scheduled. static void YieldCurrentThread(); - // Sleeps for the specified duration (units are milliseconds). - static void Sleep(int duration_ms); - // Sleeps for the specified duration. static void Sleep(base::TimeDelta duration); diff --git a/base/threading/platform_thread_posix.cc b/base/threading/platform_thread_posix.cc index 77039a0..59162b9 100644 --- a/base/threading/platform_thread_posix.cc +++ b/base/threading/platform_thread_posix.cc @@ -176,13 +176,6 @@ void PlatformThread::YieldCurrentThread() { } // static -void PlatformThread::Sleep(int duration_ms) { - // NOTE: This function will be supplanted by the other version of Sleep - // in the future. See issue 108171 for more information. - Sleep(TimeDelta::FromMilliseconds(duration_ms)); -} - -// static void PlatformThread::Sleep(TimeDelta duration) { struct timespec sleep_time, remaining; diff --git a/base/threading/platform_thread_win.cc b/base/threading/platform_thread_win.cc index 4dc839b..82981ad 100644 --- a/base/threading/platform_thread_win.cc +++ b/base/threading/platform_thread_win.cc @@ -110,11 +110,6 @@ void PlatformThread::YieldCurrentThread() { } // static -void PlatformThread::Sleep(int duration_ms) { - ::Sleep(duration_ms); -} - -// static void PlatformThread::Sleep(TimeDelta duration) { ::Sleep(duration.InMillisecondsRoundedUp()); } diff --git a/base/threading/sequenced_worker_pool.cc b/base/threading/sequenced_worker_pool.cc index 59c4187..3bc26b4 100644 --- a/base/threading/sequenced_worker_pool.cc +++ b/base/threading/sequenced_worker_pool.cc @@ -62,9 +62,6 @@ class SequencedWorkerPoolTaskRunner : public TaskRunner { // 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; @@ -76,10 +73,6 @@ class SequencedWorkerPoolTaskRunner : public TaskRunner { 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_; @@ -102,13 +95,6 @@ SequencedWorkerPoolTaskRunner::~SequencedWorkerPoolTaskRunner() { 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); } @@ -120,24 +106,15 @@ bool SequencedWorkerPoolTaskRunner::RunsTasksOnCurrentThread() const { bool SequencedWorkerPoolTaskRunner::PostDelayedTaskAssertZeroDelay( const tracked_objects::Location& from_here, const Closure& task, - int64 delay_ms) { + TimeDelta delay) { // TODO(francoisk777@gmail.com): Change the following two statements once // SequencedWorkerPool supports non-zero delays. - DCHECK_EQ(delay_ms, 0) + DCHECK_EQ(delay.InMillisecondsRoundedUp(), 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. @@ -153,9 +130,6 @@ class SequencedWorkerPoolSequencedTaskRunner : public SequencedTaskRunner { // 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; @@ -163,10 +137,6 @@ class SequencedWorkerPoolSequencedTaskRunner : public SequencedTaskRunner { 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: @@ -177,10 +147,6 @@ class SequencedWorkerPoolSequencedTaskRunner : public SequencedTaskRunner { 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_; @@ -208,13 +174,6 @@ SequencedWorkerPoolSequencedTaskRunner:: 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); } @@ -226,13 +185,6 @@ bool SequencedWorkerPoolSequencedTaskRunner::RunsTasksOnCurrentThread() const { 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); } @@ -240,25 +192,16 @@ bool SequencedWorkerPoolSequencedTaskRunner::PostNonNestableDelayedTask( bool SequencedWorkerPoolSequencedTaskRunner::PostDelayedTaskAssertZeroDelay( const tracked_objects::Location& from_here, const Closure& task, - int64 delay_ms) { + TimeDelta delay) { // TODO(francoisk777@gmail.com): Change the following two statements once // SequencedWorkerPool supports non-zero delays. - DCHECK_EQ(delay_ms, 0) + DCHECK_EQ(delay.InMillisecondsRoundedUp(), 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 --------------------------------------------------------------------- @@ -1033,15 +976,6 @@ bool SequencedWorkerPool::PostSequencedWorkerTaskWithShutdownBehavior( 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); diff --git a/base/threading/sequenced_worker_pool.h b/base/threading/sequenced_worker_pool.h index 740c26d..73c670f 100644 --- a/base/threading/sequenced_worker_pool.h +++ b/base/threading/sequenced_worker_pool.h @@ -231,9 +231,6 @@ class BASE_EXPORT SequencedWorkerPool : public TaskRunner { // TaskRunner implementation. Forwards to PostWorkerTask(). 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; diff --git a/base/threading/sequenced_worker_pool_task_runner.cc b/base/threading/sequenced_worker_pool_task_runner.cc new file mode 100644 index 0000000..b7579a7 --- /dev/null +++ b/base/threading/sequenced_worker_pool_task_runner.cc @@ -0,0 +1,52 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "base/threading/sequenced_worker_pool_task_runner.h" + +#include "base/callback.h" +#include "base/location.h" +#include "base/logging.h" + +namespace base { + +SequencedWorkerPoolTaskRunner::SequencedWorkerPoolTaskRunner( + const scoped_refptr<SequencedWorkerPool>& pool, + SequencedWorkerPool::SequenceToken token) + : pool_(pool), + token_(token) { +} + +SequencedWorkerPoolTaskRunner::~SequencedWorkerPoolTaskRunner() { +} + +bool SequencedWorkerPoolTaskRunner::PostDelayedTask( + const tracked_objects::Location& from_here, + const Closure& task, + TimeDelta delay) { + return PostDelayedTaskAssertZeroDelay(from_here, task, delay); +} + +bool SequencedWorkerPoolTaskRunner::RunsTasksOnCurrentThread() const { + return pool_->IsRunningSequenceOnCurrentThread(token_); +} + +bool SequencedWorkerPoolTaskRunner::PostNonNestableDelayedTask( + const tracked_objects::Location& from_here, + const Closure& task, + TimeDelta delay) { + return PostDelayedTaskAssertZeroDelay(from_here, task, delay); +} + +bool SequencedWorkerPoolTaskRunner::PostDelayedTaskAssertZeroDelay( + const tracked_objects::Location& from_here, + const Closure& task, + TimeDelta delay) { + // TODO(francoisk777@gmail.com): Change the following two statements once + // SequencedWorkerPool supports non-zero delays. + DCHECK_EQ(delay.InMillisecondsRoundedUp(), 0) + << "SequencedWorkerPoolTaskRunner does not yet support non-zero delays"; + return pool_->PostSequencedWorkerTask(token_, from_here, task); +} + +} // namespace base diff --git a/base/threading/sequenced_worker_pool_task_runner.h b/base/threading/sequenced_worker_pool_task_runner.h new file mode 100644 index 0000000..6827663 --- /dev/null +++ b/base/threading/sequenced_worker_pool_task_runner.h @@ -0,0 +1,63 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef BASE_THREADING_SEQUENCED_WORKER_POOL_TASK_RUNNER_H_ +#define BASE_THREADING_SEQUENCED_WORKER_POOL_TASK_RUNNER_H_ +#pragma once + +#include "base/basictypes.h" +#include "base/callback_forward.h" +#include "base/compiler_specific.h" +#include "base/memory/ref_counted.h" +#include "base/sequenced_task_runner.h" +#include "base/threading/sequenced_worker_pool.h" +#include "base/time.h" + +namespace tracked_objects { +class Location; +} // namespace tracked_objects + +namespace base { + +// A SequencedTaskRunner which posts tasks to a SequencedWorkerPool with a +// fixed sequence token. +// +// Note that this class is RefCountedThreadSafe (inherited from TaskRunner). +class BASE_EXPORT SequencedWorkerPoolTaskRunner : public SequencedTaskRunner { + public: + SequencedWorkerPoolTaskRunner(const scoped_refptr<SequencedWorkerPool>& pool, + SequencedWorkerPool::SequenceToken token); + + // TaskRunner implementation + virtual bool PostDelayedTask(const tracked_objects::Location& from_here, + const Closure& task, + TimeDelta delay) OVERRIDE; + virtual bool RunsTasksOnCurrentThread() const OVERRIDE; + + // SequencedTaskRunner implementation + virtual bool PostNonNestableDelayedTask( + const tracked_objects::Location& from_here, + const Closure& task, + TimeDelta delay) OVERRIDE; + + private: + virtual ~SequencedWorkerPoolTaskRunner(); + + // Helper function for posting a delayed task. Asserts that the delay is + // zero because non-zero delays are not yet supported. + bool PostDelayedTaskAssertZeroDelay( + const tracked_objects::Location& from_here, + const Closure& task, + TimeDelta delay); + + const scoped_refptr<SequencedWorkerPool> pool_; + + const SequencedWorkerPool::SequenceToken token_; + + DISALLOW_COPY_AND_ASSIGN(SequencedWorkerPoolTaskRunner); +}; + +} // namespace base + +#endif // BASE_THREADING_SEQUENCED_TASK_RUNNER_IMPL_H_ diff --git a/base/threading/worker_pool.cc b/base/threading/worker_pool.cc index 978584c..16cc061 100644 --- a/base/threading/worker_pool.cc +++ b/base/threading/worker_pool.cc @@ -41,9 +41,6 @@ class WorkerPoolTaskRunner : public TaskRunner { // 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; @@ -55,7 +52,7 @@ class WorkerPoolTaskRunner : public TaskRunner { bool PostDelayedTaskAssertZeroDelay( const tracked_objects::Location& from_here, const Closure& task, - int64 delay_ms); + base::TimeDelta delay); const bool tasks_are_slow_; @@ -72,15 +69,8 @@ WorkerPoolTaskRunner::~WorkerPoolTaskRunner() { bool WorkerPoolTaskRunner::PostDelayedTask( const tracked_objects::Location& from_here, const Closure& task, - int64 delay_ms) { - return PostDelayedTaskAssertZeroDelay(from_here, task, delay_ms); -} - -bool WorkerPoolTaskRunner::PostDelayedTask( - const tracked_objects::Location& from_here, - const Closure& task, TimeDelta delay) { - return PostDelayedTask(from_here, task, delay.InMillisecondsRoundedUp()); + return PostDelayedTaskAssertZeroDelay(from_here, task, delay); } bool WorkerPoolTaskRunner::RunsTasksOnCurrentThread() const { @@ -90,8 +80,8 @@ bool WorkerPoolTaskRunner::RunsTasksOnCurrentThread() const { bool WorkerPoolTaskRunner::PostDelayedTaskAssertZeroDelay( const tracked_objects::Location& from_here, const Closure& task, - int64 delay_ms) { - DCHECK_EQ(delay_ms, 0) + base::TimeDelta delay) { + DCHECK_EQ(delay.InMillisecondsRoundedUp(), 0) << "WorkerPoolTaskRunner does not support non-zero delays"; return WorkerPool::PostTask(from_here, task, tasks_are_slow_); } diff --git a/chrome/browser/policy/cloud_policy_refresh_scheduler_unittest.cc b/chrome/browser/policy/cloud_policy_refresh_scheduler_unittest.cc index 32920c5..ae3d6c1 100644 --- a/chrome/browser/policy/cloud_policy_refresh_scheduler_unittest.cc +++ b/chrome/browser/policy/cloud_policy_refresh_scheduler_unittest.cc @@ -35,12 +35,6 @@ class TestTaskRunner : public base::TaskRunner { TestTaskRunner() {} virtual bool RunsTasksOnCurrentThread() const OVERRIDE { return true; } - virtual bool PostDelayedTask(const tracked_objects::Location&, - const base::Closure&, - int64) OVERRIDE { - ADD_FAILURE(); - return false; - } MOCK_METHOD3(PostDelayedTask, bool(const tracked_objects::Location&, const base::Closure&, base::TimeDelta)); diff --git a/cloud_print/service/win/service_state.cc b/cloud_print/service/win/service_state.cc index 8641000..5c1453f 100644 --- a/cloud_print/service/win/service_state.cc +++ b/cloud_print/service/win/service_state.cc @@ -180,8 +180,9 @@ std::string ServiceState::LoginToGoogle(const std::string& service, request.set_method("POST"); request.Start(); - MessageLoop::current()->PostDelayedTask( - FROM_HERE, MessageLoop::QuitClosure(), kRequestTimeoutMs); + MessageLoop::current()->PostDelayedTask(FROM_HERE, + MessageLoop::QuitClosure(), + base::TimeDelta::FromMilliseconds(kRequestTimeoutMs)); MessageLoop::current()->Run(); diff --git a/content/browser/browser_thread_impl.cc b/content/browser/browser_thread_impl.cc index 297bb30..13ab5a5 100644 --- a/content/browser/browser_thread_impl.cc +++ b/content/browser/browser_thread_impl.cc @@ -186,11 +186,6 @@ class BrowserThreadMessageLoopProxy : public base::MessageLoopProxy { // MessageLoopProxy implementation. virtual bool PostDelayedTask( const tracked_objects::Location& from_here, - const base::Closure& task, int64 delay_ms) OVERRIDE { - return BrowserThread::PostDelayedTask(id_, from_here, task, delay_ms); - } - virtual bool PostDelayedTask( - const tracked_objects::Location& from_here, const base::Closure& task, base::TimeDelta delay) OVERRIDE { return BrowserThread::PostDelayedTask(id_, from_here, task, delay); } @@ -198,13 +193,6 @@ class BrowserThreadMessageLoopProxy : public base::MessageLoopProxy { virtual bool PostNonNestableDelayedTask( const tracked_objects::Location& from_here, const base::Closure& task, - int64 delay_ms) OVERRIDE { - return BrowserThread::PostNonNestableDelayedTask(id_, from_here, task, - delay_ms); - } - virtual bool PostNonNestableDelayedTask( - const tracked_objects::Location& from_here, - const base::Closure& task, base::TimeDelta delay) OVERRIDE { return BrowserThread::PostNonNestableDelayedTask(id_, from_here, task, delay); @@ -301,19 +289,6 @@ bool BrowserThread::PostTask(ID identifier, bool BrowserThread::PostDelayedTask(ID identifier, const tracked_objects::Location& from_here, const base::Closure& task, - int64 delay_ms) { - return BrowserThreadImpl::PostTaskHelper( - identifier, - from_here, - task, - base::TimeDelta::FromMilliseconds(delay_ms), - true); -} - -// static -bool BrowserThread::PostDelayedTask(ID identifier, - const tracked_objects::Location& from_here, - const base::Closure& task, base::TimeDelta delay) { return BrowserThreadImpl::PostTaskHelper( identifier, from_here, task, delay, true); @@ -333,20 +308,6 @@ bool BrowserThread::PostNonNestableDelayedTask( ID identifier, const tracked_objects::Location& from_here, const base::Closure& task, - int64 delay_ms) { - return BrowserThreadImpl::PostTaskHelper( - identifier, - from_here, - task, - base::TimeDelta::FromMilliseconds(delay_ms), - false); -} - -// static -bool BrowserThread::PostNonNestableDelayedTask( - ID identifier, - const tracked_objects::Location& from_here, - const base::Closure& task, base::TimeDelta delay) { return BrowserThreadImpl::PostTaskHelper( identifier, from_here, task, delay, false); diff --git a/content/browser/download/byte_stream_unittest.cc b/content/browser/download/byte_stream_unittest.cc index 44bca9a..42f08ec 100644 --- a/content/browser/download/byte_stream_unittest.cc +++ b/content/browser/download/byte_stream_unittest.cc @@ -33,18 +33,11 @@ class MockTaskRunner : public base::SequencedTaskRunner { // TaskRunner functions. MOCK_METHOD3(PostDelayedTask, bool(const tracked_objects::Location&, - const base::Closure&, int64)); - MOCK_METHOD3(PostDelayedTask, bool(const tracked_objects::Location&, const base::Closure&, base::TimeDelta)); MOCK_METHOD3(PostNonNestableDelayedTask, bool( const tracked_objects::Location&, const base::Closure&, - int64 delay_ms)); - - MOCK_METHOD3(PostNonNestableDelayedTask, bool( - const tracked_objects::Location&, - const base::Closure&, base::TimeDelta)); MOCK_CONST_METHOD0(RunsTasksOnCurrentThread, bool()); @@ -337,7 +330,7 @@ TEST_F(ByteStreamTest, ByteStream_SinkCallback) { int num_callbacks = 0; byte_stream_output->RegisterCallback( base::Bind(CountCallbacks, &num_callbacks)); - EXPECT_CALL(*task_runner.get(), PostDelayedTask(_, _, 0)) + EXPECT_CALL(*task_runner.get(), PostDelayedTask(_, _, base::TimeDelta())) .WillOnce(DoAll(SaveArg<1>(&intermediate_callback), Return(true))); @@ -411,7 +404,7 @@ TEST_F(ByteStreamTest, ByteStream_SourceCallback) { EXPECT_TRUE(ValidateIOBuffer(output_io_buffer, output_length)); // Setup expectations. - EXPECT_CALL(*task_runner.get(), PostDelayedTask(_, _, 0)) + EXPECT_CALL(*task_runner.get(), PostDelayedTask(_, _, base::TimeDelta())) .WillOnce(DoAll(SaveArg<1>(&intermediate_callback), Return(true))); @@ -430,7 +423,7 @@ TEST_F(ByteStreamTest, ByteStream_SourceCallback) { EXPECT_EQ(1, num_callbacks); // Same drill with final buffer. - EXPECT_CALL(*task_runner.get(), PostDelayedTask(_, _, 0)) + EXPECT_CALL(*task_runner.get(), PostDelayedTask(_, _, base::TimeDelta())) .WillOnce(DoAll(SaveArg<1>(&intermediate_callback), Return(true))); EXPECT_EQ(content::ByteStreamOutput::STREAM_HAS_DATA, @@ -469,7 +462,7 @@ TEST_F(ByteStreamTest, ByteStream_SinkInterrupt) { int num_callbacks = 0; byte_stream_output->RegisterCallback( base::Bind(CountCallbacks, &num_callbacks)); - EXPECT_CALL(*task_runner.get(), PostDelayedTask(_, _, 0)) + EXPECT_CALL(*task_runner.get(), PostDelayedTask(_, _, base::TimeDelta())) .WillOnce(DoAll(SaveArg<1>(&intermediate_callback), Return(true))); @@ -535,7 +528,7 @@ TEST_F(ByteStreamTest, ByteStream_SourceInterrupt) { message_loop_.RunAllPending(); // Setup expectations. - EXPECT_CALL(*task_runner.get(), PostDelayedTask(_, _, 0)) + EXPECT_CALL(*task_runner.get(), PostDelayedTask(_, _, base::TimeDelta())) .WillOnce(DoAll(SaveArg<1>(&intermediate_callback), Return(true))); @@ -556,7 +549,7 @@ TEST_F(ByteStreamTest, ByteStream_SourceInterrupt) { EXPECT_EQ(1, num_alt_callbacks); // Third get should also trigger callback. - EXPECT_CALL(*task_runner.get(), PostDelayedTask(_, _, 0)) + EXPECT_CALL(*task_runner.get(), PostDelayedTask(_, _, base::TimeDelta())) .WillOnce(DoAll(SaveArg<1>(&intermediate_callback), Return(true))); EXPECT_EQ(content::ByteStreamOutput::STREAM_HAS_DATA, @@ -588,7 +581,7 @@ TEST_F(ByteStreamTest, ByteStream_ZeroCallback) { int num_callbacks = 0; byte_stream_output->RegisterCallback( base::Bind(CountCallbacks, &num_callbacks)); - EXPECT_CALL(*task_runner.get(), PostDelayedTask(_, _, 0)) + EXPECT_CALL(*task_runner.get(), PostDelayedTask(_, _, base::TimeDelta())) .WillOnce(DoAll(SaveArg<1>(&intermediate_callback), Return(true))); diff --git a/content/public/browser/browser_thread.h b/content/public/browser/browser_thread.h index 0ac582b..bf6a763 100644 --- a/content/public/browser/browser_thread.h +++ b/content/public/browser/browser_thread.h @@ -110,10 +110,6 @@ class CONTENT_EXPORT BrowserThread { static bool PostDelayedTask(ID identifier, const tracked_objects::Location& from_here, const base::Closure& task, - int64 delay_ms); - static bool PostDelayedTask(ID identifier, - const tracked_objects::Location& from_here, - const base::Closure& task, base::TimeDelta delay); static bool PostNonNestableTask(ID identifier, const tracked_objects::Location& from_here, @@ -122,11 +118,6 @@ class CONTENT_EXPORT BrowserThread { ID identifier, const tracked_objects::Location& from_here, const base::Closure& task, - int64 delay_ms); - static bool PostNonNestableDelayedTask( - ID identifier, - const tracked_objects::Location& from_here, - const base::Closure& task, base::TimeDelta delay); static bool PostTaskAndReply( diff --git a/remoting/base/plugin_message_loop_proxy.cc b/remoting/base/plugin_message_loop_proxy.cc index 9d9a599..ad595c8 100644 --- a/remoting/base/plugin_message_loop_proxy.cc +++ b/remoting/base/plugin_message_loop_proxy.cc @@ -27,14 +27,6 @@ void PluginMessageLoopProxy::Detach() { bool PluginMessageLoopProxy::PostDelayedTask( const tracked_objects::Location& from_here, const base::Closure& task, - int64 delay_ms) { - return PostDelayedTask( - from_here, task, base::TimeDelta::FromMilliseconds(delay_ms)); -} - -bool PluginMessageLoopProxy::PostDelayedTask( - const tracked_objects::Location& from_here, - const base::Closure& task, base::TimeDelta delay) { base::AutoLock auto_lock(lock_); if (!delegate_) @@ -49,14 +41,6 @@ bool PluginMessageLoopProxy::PostDelayedTask( bool PluginMessageLoopProxy::PostNonNestableDelayedTask( const tracked_objects::Location& from_here, const base::Closure& task, - int64 delay_ms) { - // All tasks running on this message loop are non-nestable. - return PostDelayedTask(from_here, task, delay_ms); -} - -bool PluginMessageLoopProxy::PostNonNestableDelayedTask( - const tracked_objects::Location& from_here, - const base::Closure& task, base::TimeDelta delay) { // All tasks running on this message loop are non-nestable. return PostDelayedTask(from_here, task, delay); diff --git a/remoting/base/plugin_message_loop_proxy.h b/remoting/base/plugin_message_loop_proxy.h index 23e2c7a..1088344 100644 --- a/remoting/base/plugin_message_loop_proxy.h +++ b/remoting/base/plugin_message_loop_proxy.h @@ -34,18 +34,10 @@ class PluginMessageLoopProxy : public base::MessageLoopProxy { virtual bool PostDelayedTask( const tracked_objects::Location& from_here, const base::Closure& task, - int64 delay_ms) OVERRIDE; - virtual bool PostDelayedTask( - const tracked_objects::Location& from_here, - const base::Closure& task, base::TimeDelta delay) OVERRIDE; virtual bool PostNonNestableDelayedTask( const tracked_objects::Location& from_here, const base::Closure& task, - int64 delay_ms) OVERRIDE; - virtual bool PostNonNestableDelayedTask( - const tracked_objects::Location& from_here, - const base::Closure& task, base::TimeDelta delay) OVERRIDE; virtual bool RunsTasksOnCurrentThread() const OVERRIDE; diff --git a/remoting/base/scoped_thread_proxy.cc b/remoting/base/scoped_thread_proxy.cc index d1dcc26..7209a52 100644 --- a/remoting/base/scoped_thread_proxy.cc +++ b/remoting/base/scoped_thread_proxy.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -24,9 +24,9 @@ class ScopedThreadProxy::Core : public base::RefCountedThreadSafe<Core> { void PostDelayedTask( const tracked_objects::Location& from_here, const base::Closure& closure, - int64 delay_ms) { + base::TimeDelta delay) { if (!canceled_) { - message_loop_->PostDelayedTask(from_here, Wrap(closure), delay_ms); + message_loop_->PostDelayedTask(from_here, Wrap(closure), delay); } } @@ -75,8 +75,8 @@ void ScopedThreadProxy::PostTask(const tracked_objects::Location& from_here, void ScopedThreadProxy::PostDelayedTask( const tracked_objects::Location& from_here, const base::Closure& closure, - int64 delay_ms) { - core_->PostDelayedTask(from_here, closure, delay_ms); + base::TimeDelta delay) { + core_->PostDelayedTask(from_here, closure, delay); } void ScopedThreadProxy::Detach() { diff --git a/remoting/base/scoped_thread_proxy.h b/remoting/base/scoped_thread_proxy.h index 9e43a15..8e69d8f 100644 --- a/remoting/base/scoped_thread_proxy.h +++ b/remoting/base/scoped_thread_proxy.h @@ -54,7 +54,7 @@ class ScopedThreadProxy { const base::Closure& closure); void PostDelayedTask(const tracked_objects::Location& from_here, const base::Closure& closure, - int64 delay_ms); + base::TimeDelta delay); // Cancels all tasks posted via this proxy. Must be called on the // thread this object belongs to. diff --git a/remoting/host/it2me_host_user_interface.cc b/remoting/host/it2me_host_user_interface.cc index c39f6d3..3edb144 100644 --- a/remoting/host/it2me_host_user_interface.cc +++ b/remoting/host/it2me_host_user_interface.cc @@ -30,7 +30,8 @@ class It2MeHostUserInterface::TimerTask { const base::Closure& task, int delay_ms) : thread_proxy_(message_loop) { - thread_proxy_.PostDelayedTask(FROM_HERE, task, delay_ms); + thread_proxy_.PostDelayedTask( + FROM_HERE, task, base::TimeDelta::FromMilliseconds(delay_ms)); } private: diff --git a/webkit/dom_storage/dom_storage_task_runner.cc b/webkit/dom_storage/dom_storage_task_runner.cc index f25699c..9935ad7 100644 --- a/webkit/dom_storage/dom_storage_task_runner.cc +++ b/webkit/dom_storage/dom_storage_task_runner.cc @@ -17,14 +17,6 @@ bool DomStorageTaskRunner::RunsTasksOnCurrentThread() const { return IsRunningOnSequence(PRIMARY_SEQUENCE); } -bool DomStorageTaskRunner::PostDelayedTask( - const tracked_objects::Location& from_here, - const base::Closure& task, - int64 delay_ms) { - return PostDelayedTask( - from_here, task, base::TimeDelta::FromMilliseconds(delay_ms)); -} - // DomStorageWorkerPoolTaskRunner DomStorageWorkerPoolTaskRunner::DomStorageWorkerPoolTaskRunner( diff --git a/webkit/dom_storage/dom_storage_task_runner.h b/webkit/dom_storage/dom_storage_task_runner.h index eb9da80..4266509 100644 --- a/webkit/dom_storage/dom_storage_task_runner.h +++ b/webkit/dom_storage/dom_storage_task_runner.h @@ -59,13 +59,6 @@ class DomStorageTaskRunner : public base::TaskRunner { return IsRunningOnSequence(COMMIT_SEQUENCE); } - // DEPRECATED: Only here because base::TaskRunner requires it, implemented - // by calling the virtual PostDelayedTask(..., TimeDelta) variant. - virtual bool PostDelayedTask( - const tracked_objects::Location& from_here, - const base::Closure& task, - int64 delay_ms) OVERRIDE; - protected: virtual ~DomStorageTaskRunner() {} }; |