Index: base/timer/timer.h |
diff --git a/base/timer/timer.h b/base/timer/timer.h |
index 6d282ee8e7ac84f3d6f5757650c08be70463f9e6..7738acb77e057f7fe97d4e2f2849f6d56ab25513 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" |
danakj
2014/10/22 15:07:43
can this be forward declared in this header?
petrcermak
2014/10/23 10:59:37
Done.
|
#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 |
+ // 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(); |
@@ -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 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. |