| Index: base/timer/timer.h
|
| diff --git a/base/timer/timer.h b/base/timer/timer.h
|
| index 4ef2f456395d5f4b44ebaedbcb06145f6c30cf5f..7e2c1d41f134aa7bdc1c950c01c7645a782cc184 100644
|
| --- a/base/timer/timer.h
|
| +++ b/base/timer/timer.h
|
| @@ -60,6 +60,7 @@
|
| namespace base {
|
|
|
| class BaseTimerTaskInternal;
|
| +class SingleThreadTaskRunner;
|
|
|
| //-----------------------------------------------------------------------------
|
| // This class wraps MessageLoop::PostDelayedTask to manage delayed and repeating
|
| @@ -87,6 +88,10 @@ class BASE_EXPORT Timer {
|
| // Returns the current delay for this timer.
|
| virtual TimeDelta GetCurrentDelay() const;
|
|
|
| + // Set the task runner on which the task should be scheduled. This method can
|
| + // only be called before any tasks have been scheduled.
|
| + virtual void SetTaskRunner(scoped_refptr<SingleThreadTaskRunner> task_runner);
|
| +
|
| // Start the timer to run at the given |delay| from now. If the timer is
|
| // already running, it will be replaced to call the given |user_task|.
|
| virtual void Start(const tracked_objects::Location& posted_from,
|
| @@ -128,6 +133,11 @@ class BASE_EXPORT Timer {
|
| // and desired_run_time_ are reset to Now() + delay.
|
| void PostNewScheduledTask(TimeDelta delay);
|
|
|
| + // Returns the task runner on which the task should be scheduled. If the
|
| + // corresponding task_runner_ field is null, the task runner for the current
|
| + // thread is returned.
|
| + scoped_refptr<SingleThreadTaskRunner> GetTaskRunner();
|
| +
|
| // Disable scheduled_task_ and abandon it so that it no longer refers back to
|
| // this object.
|
| void AbandonScheduledTask();
|
| @@ -145,6 +155,10 @@ class BASE_EXPORT Timer {
|
| // RunScheduledTask() at scheduled_run_time_.
|
| BaseTimerTaskInternal* scheduled_task_;
|
|
|
| + // The task runner on which the task should be scheduled. If it is null, the
|
| + // task runner for the current thread should be used.
|
| + scoped_refptr<SingleThreadTaskRunner> task_runner_;
|
| +
|
| // Location in user code.
|
| tracked_objects::Location posted_from_;
|
| // Delay requested by user.
|
|
|