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 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
150 QueuePriority GetQueuePriority() const override; | 150 QueuePriority GetQueuePriority() const override; |
151 void AddTaskObserver(base::MessageLoop::TaskObserver* task_observer) override; | 151 void AddTaskObserver(base::MessageLoop::TaskObserver* task_observer) override; |
152 void RemoveTaskObserver( | 152 void RemoveTaskObserver( |
153 base::MessageLoop::TaskObserver* task_observer) override; | 153 base::MessageLoop::TaskObserver* task_observer) override; |
154 void SetTimeDomain(TimeDomain* time_domain) override; | 154 void SetTimeDomain(TimeDomain* time_domain) override; |
155 TimeDomain* GetTimeDomain() const override; | 155 TimeDomain* GetTimeDomain() const override; |
156 void SetBlameContext(base::trace_event::BlameContext* blame_context) override; | 156 void SetBlameContext(base::trace_event::BlameContext* blame_context) override; |
157 void InsertFence(InsertFencePosition position) override; | 157 void InsertFence(InsertFencePosition position) override; |
158 void RemoveFence() override; | 158 void RemoveFence() override; |
159 bool BlockedByFence() const override; | 159 bool BlockedByFence() const override; |
160 bool HasFence() const override; | |
160 const char* GetName() const override; | 161 const char* GetName() const override; |
161 QueueType GetQueueType() const override; | 162 QueueType GetQueueType() const override; |
162 void SetObserver(Observer* observer) override; | 163 void SetObserver(Observer* observer) override; |
163 | 164 |
164 // Returns true if a (potentially hypothetical) task with the specified | 165 // Returns true if a (potentially hypothetical) task with the specified |
165 // |enqueue_order| could run on the queue. Must be called from the main | 166 // |enqueue_order| could run on the queue. Must be called from the main |
166 // thread. | 167 // thread. |
167 bool CouldTaskRun(EnqueueOrder enqueue_order) const; | 168 bool CouldTaskRun(EnqueueOrder enqueue_order) const; |
168 | 169 |
169 // Must only be called from the thread this task queue was created on. | 170 // Must only be called from the thread this task queue was created on. |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
253 struct AnyThread { | 254 struct AnyThread { |
254 AnyThread(TaskQueueManager* task_queue_manager, TimeDomain* time_domain); | 255 AnyThread(TaskQueueManager* task_queue_manager, TimeDomain* time_domain); |
255 ~AnyThread(); | 256 ~AnyThread(); |
256 | 257 |
257 // TaskQueueManager, TimeDomain and Observer are maintained in two copies: | 258 // TaskQueueManager, TimeDomain and Observer are maintained in two copies: |
258 // inside AnyThread and inside MainThreadOnly. They can be changed only from | 259 // inside AnyThread and inside MainThreadOnly. They can be changed only from |
259 // main thread, so it should be locked before accessing from other threads. | 260 // main thread, so it should be locked before accessing from other threads. |
260 TaskQueueManager* task_queue_manager; | 261 TaskQueueManager* task_queue_manager; |
261 TimeDomain* time_domain; | 262 TimeDomain* time_domain; |
262 Observer* observer; | 263 Observer* observer; |
264 | |
265 base::Optional<EnqueueOrder> current_enqueue_order; | |
alex clarke (OOO till 29th)
2017/04/21 09:14:18
This doesn't seem to be used?
altimin
2017/04/25 13:22:34
Thanks, removed.
alex clarke (OOO till 29th)
2017/05/02 10:51:54
It's still there? :)
altimin
2017/05/02 18:16:58
Finally gone.
| |
263 }; | 266 }; |
264 | 267 |
265 struct MainThreadOnly { | 268 struct MainThreadOnly { |
266 MainThreadOnly(TaskQueueManager* task_queue_manager, | 269 MainThreadOnly(TaskQueueManager* task_queue_manager, |
267 TaskQueueImpl* task_queue, | 270 TaskQueueImpl* task_queue, |
268 TimeDomain* time_domain); | 271 TimeDomain* time_domain); |
269 ~MainThreadOnly(); | 272 ~MainThreadOnly(); |
270 | 273 |
271 // Another copy of TaskQueueManager, TimeDomain and Observer | 274 // Another copy of TaskQueueManager, TimeDomain and Observer |
272 // for lock-free access from the main thread. | 275 // for lock-free access from the main thread. |
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
387 const bool should_report_when_execution_blocked_; | 390 const bool should_report_when_execution_blocked_; |
388 | 391 |
389 DISALLOW_COPY_AND_ASSIGN(TaskQueueImpl); | 392 DISALLOW_COPY_AND_ASSIGN(TaskQueueImpl); |
390 }; | 393 }; |
391 | 394 |
392 } // namespace internal | 395 } // namespace internal |
393 } // namespace scheduler | 396 } // namespace scheduler |
394 } // namespace blink | 397 } // namespace blink |
395 | 398 |
396 #endif // THIRD_PARTY_WEBKIT_SOURCE_PLATFORM_SCHEDULER_BASE_TASK_QUEUE_IMPL_H_ | 399 #endif // THIRD_PARTY_WEBKIT_SOURCE_PLATFORM_SCHEDULER_BASE_TASK_QUEUE_IMPL_H_ |
OLD | NEW |