Commit 819323d2 authored by tzik@chromium.org's avatar tzik@chromium.org

[SyncFS] Make base::TimeTicks::Now() dependency in SyncProcessRunner injectable.

BUG=344769

Review URL: https://codereview.chromium.org/378223002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@282013 0039d316-1c4b-4281-b951-d872f2087c98
parent 9a1be236
...@@ -36,6 +36,10 @@ class BaseTimerHelper : public SyncProcessRunner::TimerHelper { ...@@ -36,6 +36,10 @@ class BaseTimerHelper : public SyncProcessRunner::TimerHelper {
timer_.Start(from_here, delay, closure); timer_.Start(from_here, delay, closure);
} }
virtual base::TimeTicks Now() const OVERRIDE {
return base::TimeTicks::Now();
}
virtual ~BaseTimerHelper() {} virtual ~BaseTimerHelper() {}
private: private:
...@@ -145,7 +149,7 @@ void SyncProcessRunner::Finished(const base::TimeTicks& start_time, ...@@ -145,7 +149,7 @@ void SyncProcessRunner::Finished(const base::TimeTicks& start_time,
util::Log(logging::LOG_VERBOSE, FROM_HERE, util::Log(logging::LOG_VERBOSE, FROM_HERE,
"[%s] * Finished (elapsed: %" PRId64 " sec)", "[%s] * Finished (elapsed: %" PRId64 " sec)",
name_.c_str(), name_.c_str(),
(base::TimeTicks::Now() - start_time).InSeconds()); (timer_helper_->Now() - start_time).InSeconds());
if (status == SYNC_STATUS_NO_CHANGE_TO_SYNC || if (status == SYNC_STATUS_NO_CHANGE_TO_SYNC ||
status == SYNC_STATUS_FILE_BUSY) status == SYNC_STATUS_FILE_BUSY)
ScheduleInternal(kSyncDelayMaxInMilliseconds); ScheduleInternal(kSyncDelayMaxInMilliseconds);
...@@ -160,7 +164,7 @@ void SyncProcessRunner::Run() { ...@@ -160,7 +164,7 @@ void SyncProcessRunner::Run() {
if (running_tasks_ >= max_parallel_task_) if (running_tasks_ >= max_parallel_task_)
return; return;
++running_tasks_; ++running_tasks_;
last_scheduled_ = base::TimeTicks::Now(); last_scheduled_ = timer_helper_->Now();
last_delay_ = current_delay_; last_delay_ = current_delay_;
util::Log(logging::LOG_VERBOSE, FROM_HERE, util::Log(logging::LOG_VERBOSE, FROM_HERE,
...@@ -177,7 +181,7 @@ void SyncProcessRunner::ScheduleInternal(int64 delay) { ...@@ -177,7 +181,7 @@ void SyncProcessRunner::ScheduleInternal(int64 delay) {
if (current_delay_ == delay) if (current_delay_ == delay)
return; return;
base::TimeDelta elapsed = base::TimeTicks::Now() - last_scheduled_; base::TimeDelta elapsed = timer_helper_->Now() - last_scheduled_;
if (elapsed < time_to_next) { if (elapsed < time_to_next) {
time_to_next = time_to_next - elapsed; time_to_next = time_to_next - elapsed;
} else { } else {
......
...@@ -58,6 +58,7 @@ class SyncProcessRunner { ...@@ -58,6 +58,7 @@ class SyncProcessRunner {
virtual void Start(const tracked_objects::Location& from_here, virtual void Start(const tracked_objects::Location& from_here,
const base::TimeDelta& delay, const base::TimeDelta& delay,
const base::Closure& closure) = 0; const base::Closure& closure) = 0;
virtual base::TimeTicks Now() const = 0;
protected: protected:
TimerHelper() {} TimerHelper() {}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment