blob: fdd997cfd8be19eccf4a0d9f53779be519a0e0c0 [file] [log] [blame]
// Copyright 2015 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 "components/scheduler/base/virtual_time_domain.h"
#include "base/bind.h"
#include "components/scheduler/base/task_queue_impl.h"
#include "components/scheduler/base/task_queue_manager_delegate.h"
namespace scheduler {
VirtualTimeDomain::VirtualTimeDomain(base::TimeTicks initial_time)
: now_(initial_time) {}
VirtualTimeDomain::~VirtualTimeDomain() {}
LazyNow VirtualTimeDomain::CreateLazyNow() {
base::AutoLock lock(lock_);
return LazyNow(now_);
}
void VirtualTimeDomain::RequestWakeup(base::TimeDelta delay) {
// We don't need to do anything here because AdvanceTo triggers delayed tasks.
}
bool VirtualTimeDomain::MaybeAdvanceTime() {
return false;
}
void VirtualTimeDomain::AsValueIntoInternal(
base::trace_event::TracedValue* state) const {}
void VirtualTimeDomain::AdvanceTo(base::TimeTicks now) {
base::AutoLock lock(lock_);
DCHECK_GE(now, now_);
now_ = now;
LazyNow lazy_now(now_);
WakeupReadyDelayedQueues(&lazy_now);
}
const char* VirtualTimeDomain::GetName() const {
return "VirtualTimeDomain";
}
} // namespace scheduler