Chromium Code Reviews| Index: base/timer/timer.h |
| diff --git a/base/timer/timer.h b/base/timer/timer.h |
| index 6d282ee8e7ac84f3d6f5757650c08be70463f9e6..5de3d566a8d2658637513bfb64437a4f50a667ed 100644 |
| --- a/base/timer/timer.h |
| +++ b/base/timer/timer.h |
| @@ -55,6 +55,7 @@ |
| #include "base/bind_helpers.h" |
| #include "base/callback.h" |
| #include "base/location.h" |
| +#include "base/single_thread_task_runner.h" |
| #include "base/time/time.h" |
| namespace base { |
| @@ -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, |
| @@ -122,6 +127,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 |
|
Avi (use Gerrit)
2014/10/16 18:02:55
Here you say if the field is "NULL", but below you
petrcermak
2014/10/17 15:43:15
Done (use "is NULL").
|
| + // thread is set and returned. |
| + scoped_refptr<SingleThreadTaskRunner> GetTaskRunner(); |
| + |
| // Disable scheduled_task_ and abandon it so that it no longer refers back to |
| // this object. |
| void AbandonScheduledTask(); |
| @@ -139,6 +149,10 @@ class BASE_EXPORT Timer { |
| // RunScheduledTask() at scheduled_run_time_. |
| BaseTimerTaskInternal* scheduled_task_; |
| + // The task runner on which the task should be scheduled. If 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. |