Index: base/task_scheduler/task_scheduler_impl.cc |
diff --git a/base/task_scheduler/task_scheduler_impl.cc b/base/task_scheduler/task_scheduler_impl.cc |
index 70a71baf7ce45d9ab1ce3632071b863f9cc40b11..af9639b28377a2b531cda549458931fc6de52654 100644 |
--- a/base/task_scheduler/task_scheduler_impl.cc |
+++ b/base/task_scheduler/task_scheduler_impl.cc |
@@ -118,12 +118,12 @@ void TaskSchedulerImpl::ReEnqueueSequenceCallback( |
DCHECK(sequence); |
const SequenceSortKey sort_key = sequence->GetSortKey(); |
- TaskTraits traits(sequence->PeekTask()->traits); |
- // Update the priority of |traits| so that the next task in |sequence| runs |
- // with the highest priority in |sequence| as opposed to the next task's |
- // specific priority. |
- traits.WithPriority(sort_key.priority()); |
+ // The next task in |sequence| should run in a worker pool suited for its |
+ // traits, except for the priority which is adjusted to the highest priority |
+ // in |sequence|. |
+ const TaskTraits traits = |
+ sequence->PeekTaskTraits().WithPriority(sort_key.priority()); |
GetWorkerPoolForTraits(traits)->ReEnqueueSequence(std::move(sequence), |
sort_key); |