| Index: third_party/WebKit/Source/platform/scheduler/base/enqueue_order.cc
|
| diff --git a/third_party/WebKit/Source/platform/scheduler/base/enqueue_order.cc b/third_party/WebKit/Source/platform/scheduler/base/enqueue_order.cc
|
| index fcfd3ffdd817f4160af9c23e4f65752af447d972..d5fc4f9e2755a0c02d411a6a1ad48508e259ac79 100644
|
| --- a/third_party/WebKit/Source/platform/scheduler/base/enqueue_order.cc
|
| +++ b/third_party/WebKit/Source/platform/scheduler/base/enqueue_order.cc
|
| @@ -8,16 +8,48 @@ namespace blink {
|
| namespace scheduler {
|
| namespace internal {
|
|
|
| -// Note we set the first |enqueue_order_| to a specific non-zero value, because
|
| +// Note we set the first sequence number to a specific non-zero value, because
|
| // first N values of EnqueueOrder have special meaning (see EnqueueOrderValues).
|
| EnqueueOrderGenerator::EnqueueOrderGenerator()
|
| - : enqueue_order_(static_cast<EnqueueOrder>(EnqueueOrderValues::FIRST)) {}
|
| + : sequence_num_(static_cast<SequenceNumber>(
|
| + EnqueueOrderSequenceNumberValues::FIRST)) {}
|
|
|
| EnqueueOrderGenerator::~EnqueueOrderGenerator() {}
|
|
|
| -EnqueueOrder EnqueueOrderGenerator::GenerateNext() {
|
| +EnqueueOrder EnqueueOrderGenerator::GenerateNext(
|
| + base::TimeTicks delayed_run_time) {
|
| base::AutoLock lock(lock_);
|
| - return enqueue_order_++;
|
| + return {delayed_run_time, sequence_num_++};
|
| +}
|
| +
|
| +EnqueueOrder::EnqueueOrder() : sequence_num(0) {}
|
| +
|
| +EnqueueOrder::EnqueueOrder(base::TimeTicks delayed_run_time,
|
| + SequenceNumber sequence_num)
|
| + : delayed_run_time(delayed_run_time), sequence_num(sequence_num) {}
|
| +
|
| +bool EnqueueOrder::operator==(const EnqueueOrder& other) const {
|
| + return delayed_run_time == other.delayed_run_time &&
|
| + sequence_num == other.sequence_num;
|
| +}
|
| +
|
| +bool EnqueueOrder::operator<=(const EnqueueOrder& other) const {
|
| + if (delayed_run_time > other.delayed_run_time)
|
| + return false;
|
| +
|
| + if (delayed_run_time < other.delayed_run_time)
|
| + return true;
|
| +
|
| + return sequence_num <= other.sequence_num;
|
| +}
|
| +
|
| +bool EnqueueOrder::operator<(const EnqueueOrder& other) const {
|
| + return !(*this == other) && *this <= other;
|
| +}
|
| +
|
| +std::ostream& operator<<(std::ostream& stream, const EnqueueOrder& value) {
|
| + return stream << "(" << value.delayed_run_time << ", " << value.sequence_num
|
| + << ")";
|
| }
|
|
|
| } // namespace internal
|
|
|