| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef THIRD_PARTY_WEBKIT_SOURCE_PLATFORM_SCHEDULER_BASE_TASK_QUEUE_IMPL_H_ | 5 #ifndef THIRD_PARTY_WEBKIT_SOURCE_PLATFORM_SCHEDULER_BASE_TASK_QUEUE_IMPL_H_ |
| 6 #define THIRD_PARTY_WEBKIT_SOURCE_PLATFORM_SCHEDULER_BASE_TASK_QUEUE_IMPL_H_ | 6 #define THIRD_PARTY_WEBKIT_SOURCE_PLATFORM_SCHEDULER_BASE_TASK_QUEUE_IMPL_H_ |
| 7 | 7 |
| 8 #include <stddef.h> | 8 #include <stddef.h> |
| 9 | 9 |
| 10 #include <memory> | 10 #include <memory> |
| (...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 132 base::MessageLoop::TaskObserver* task_observer) override; | 132 base::MessageLoop::TaskObserver* task_observer) override; |
| 133 void SetTimeDomain(TimeDomain* time_domain) override; | 133 void SetTimeDomain(TimeDomain* time_domain) override; |
| 134 TimeDomain* GetTimeDomain() const override; | 134 TimeDomain* GetTimeDomain() const override; |
| 135 void SetBlameContext(base::trace_event::BlameContext* blame_context) override; | 135 void SetBlameContext(base::trace_event::BlameContext* blame_context) override; |
| 136 void InsertFence(InsertFencePosition position) override; | 136 void InsertFence(InsertFencePosition position) override; |
| 137 void RemoveFence() override; | 137 void RemoveFence() override; |
| 138 bool BlockedByFence() const override; | 138 bool BlockedByFence() const override; |
| 139 const char* GetName() const override; | 139 const char* GetName() const override; |
| 140 QueueType GetQueueType() const override; | 140 QueueType GetQueueType() const override; |
| 141 | 141 |
| 142 // If this returns false then future updates for this queue are not needed | 142 // As BlockedByFence but only safe to be called while |any_thread_| is locked. |
| 143 // unless requested. | 143 // Must only be called from the thread this task queue was created on. |
| 144 bool MaybeUpdateImmediateWorkQueues(); | 144 bool BlockedByFenceLocked() const; |
| 145 |
| 146 // Must only be called from the thread this task queue was created on. |
| 147 void OnImmediateWorkQueueHasBecomeEmpty( |
| 148 std::queue<TaskQueueImpl::Task>* work_queue); |
| 149 |
| 150 // Must only be called from the thread this task queue was created on. |
| 151 void ReloadImmediateWorkQueueIfEmpty(); |
| 145 | 152 |
| 146 void AsValueInto(base::trace_event::TracedValue* state) const; | 153 void AsValueInto(base::trace_event::TracedValue* state) const; |
| 147 | 154 |
| 148 bool GetQuiescenceMonitored() const { return should_monitor_quiescence_; } | 155 bool GetQuiescenceMonitored() const { return should_monitor_quiescence_; } |
| 149 bool GetShouldNotifyObservers() const { return should_notify_observers_; } | 156 bool GetShouldNotifyObservers() const { return should_notify_observers_; } |
| 150 | 157 |
| 151 void NotifyWillProcessTask(const base::PendingTask& pending_task); | 158 void NotifyWillProcessTask(const base::PendingTask& pending_task); |
| 152 void NotifyDidProcessTask(const base::PendingTask& pending_task); | 159 void NotifyDidProcessTask(const base::PendingTask& pending_task); |
| 153 | 160 |
| 154 WorkQueue* delayed_work_queue() { | 161 WorkQueue* delayed_work_queue() { |
| (...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 283 // Push the task onto the |immediate_incoming_queue| and for auto pumped | 290 // Push the task onto the |immediate_incoming_queue| and for auto pumped |
| 284 // queues it calls MaybePostDoWorkOnMainRunner if the Incoming queue was | 291 // queues it calls MaybePostDoWorkOnMainRunner if the Incoming queue was |
| 285 // empty. | 292 // empty. |
| 286 void PushOntoImmediateIncomingQueueLocked( | 293 void PushOntoImmediateIncomingQueueLocked( |
| 287 const tracked_objects::Location& posted_from, | 294 const tracked_objects::Location& posted_from, |
| 288 const base::Closure& task, | 295 const base::Closure& task, |
| 289 base::TimeTicks desired_run_time, | 296 base::TimeTicks desired_run_time, |
| 290 EnqueueOrder sequence_number, | 297 EnqueueOrder sequence_number, |
| 291 bool nestable); | 298 bool nestable); |
| 292 | 299 |
| 293 // As BlockedByFence but safe to be called while locked. | |
| 294 bool BlockedByFenceLocked() const; | |
| 295 | |
| 296 void TraceQueueSize(bool is_locked) const; | 300 void TraceQueueSize(bool is_locked) const; |
| 297 static void QueueAsValueInto(const std::queue<Task>& queue, | 301 static void QueueAsValueInto(const std::queue<Task>& queue, |
| 298 base::trace_event::TracedValue* state); | 302 base::trace_event::TracedValue* state); |
| 299 static void QueueAsValueInto(const std::priority_queue<Task>& queue, | 303 static void QueueAsValueInto(const std::priority_queue<Task>& queue, |
| 300 base::trace_event::TracedValue* state); | 304 base::trace_event::TracedValue* state); |
| 301 static void TaskAsValueInto(const Task& task, | 305 static void TaskAsValueInto(const Task& task, |
| 302 base::trace_event::TracedValue* state); | 306 base::trace_event::TracedValue* state); |
| 303 | 307 |
| 304 void RemoveQueueEnabledVoter(const QueueEnabledVoterImpl* voter); | 308 void RemoveQueueEnabledVoter(const QueueEnabledVoterImpl* voter); |
| 305 void OnQueueEnabledVoteChanged(bool enabled); | 309 void OnQueueEnabledVoteChanged(bool enabled); |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 339 const bool should_report_when_execution_blocked_; | 343 const bool should_report_when_execution_blocked_; |
| 340 | 344 |
| 341 DISALLOW_COPY_AND_ASSIGN(TaskQueueImpl); | 345 DISALLOW_COPY_AND_ASSIGN(TaskQueueImpl); |
| 342 }; | 346 }; |
| 343 | 347 |
| 344 } // namespace internal | 348 } // namespace internal |
| 345 } // namespace scheduler | 349 } // namespace scheduler |
| 346 } // namespace blink | 350 } // namespace blink |
| 347 | 351 |
| 348 #endif // THIRD_PARTY_WEBKIT_SOURCE_PLATFORM_SCHEDULER_BASE_TASK_QUEUE_IMPL_H_ | 352 #endif // THIRD_PARTY_WEBKIT_SOURCE_PLATFORM_SCHEDULER_BASE_TASK_QUEUE_IMPL_H_ |
| OLD | NEW |