1 // Copyright 2016 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "base/task_scheduler/sequence_sort_key.h" 6 7 namespace base { 8 namespace internal { 9 SequenceSortKey(TaskPriority priority,TimeTicks next_task_sequenced_time)10SequenceSortKey::SequenceSortKey(TaskPriority priority, 11 TimeTicks next_task_sequenced_time) 12 : priority_(priority), 13 next_task_sequenced_time_(next_task_sequenced_time) {} 14 operator <(const SequenceSortKey & other) const15bool SequenceSortKey::operator<(const SequenceSortKey& other) const { 16 // This SequenceSortKey is considered less important than |other| if it has a 17 // lower priority or if it has the same priority but its next task was posted 18 // later than |other|'s. 19 const int priority_diff = 20 static_cast<int>(priority_) - static_cast<int>(other.priority_); 21 if (priority_diff < 0) 22 return true; 23 if (priority_diff > 0) 24 return false; 25 return next_task_sequenced_time_ > other.next_task_sequenced_time_; 26 } 27 28 } // namespace internal 29 } // namespace base 30