Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(311)

Side by Side Diff: third_party/WebKit/public/platform/scheduler/base/task_queue.h

Issue 2326313003: Revert of Make canceling Timers fast. (Closed)
Patch Set: Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/WebKit/public/platform/WebTaskRunner.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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_PUBLIC_PLATFORM_SCHEDULER_BASE_TASK_QUEUE_H_ 5 #ifndef THIRD_PARTY_WEBKIT_PUBLIC_PLATFORM_SCHEDULER_BASE_TASK_QUEUE_H_
6 #define THIRD_PARTY_WEBKIT_PUBLIC_PLATFORM_SCHEDULER_BASE_TASK_QUEUE_H_ 6 #define THIRD_PARTY_WEBKIT_PUBLIC_PLATFORM_SCHEDULER_BASE_TASK_QUEUE_H_
7 7
8 #include "base/macros.h" 8 #include "base/macros.h"
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "base/single_thread_task_runner.h" 10 #include "base/single_thread_task_runner.h"
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 return *this; 84 return *this;
85 } 85 }
86 86
87 const char* name; 87 const char* name;
88 bool should_monitor_quiescence; 88 bool should_monitor_quiescence;
89 TimeDomain* time_domain; 89 TimeDomain* time_domain;
90 bool should_notify_observers; 90 bool should_notify_observers;
91 bool should_report_when_execution_blocked; 91 bool should_report_when_execution_blocked;
92 }; 92 };
93 93
94 // Intended to be used as an opaque handle to a task posted by
95 // PostCancellableDelayedTask.
96 class BLINK_PLATFORM_EXPORT TaskHandle {
97 public:
98 TaskHandle();
99
100 // Returns false if the handle is equivalent to TaskHandle(), i.e. the
101 // handle doesn't represent a task that got posted.
102 operator bool() const;
103
104 private:
105 friend internal::TaskQueueImpl;
106 friend FakeWebTaskRunner;
107
108 // For immediate tasks.
109 TaskHandle(TaskQueue* task_queue, uint64_t enqueue_order);
110
111 // For delayed tasks.
112 TaskHandle(TaskQueue* task_queue,
113 base::TimeTicks scheduled_run_time,
114 int sequence_number);
115
116 uint64_t enqueue_order_;
117 base::TimeTicks scheduled_run_time_;
118 #if DCHECK_IS_ON()
119 TaskQueue* task_queue_;
120 #endif
121 int sequence_number_;
122 };
123
124 // Posts the given task to be run after |delay| has passed. Returns a handle
125 // which can be passed to CancelTask to cancel the task before it has run.
126 // NOTE this must be called on the thread this TaskQueue was created by.
127 virtual TaskHandle PostCancellableDelayedTask(
128 const tracked_objects::Location& from_here,
129 const base::Closure& task,
130 base::TimeDelta delay) = 0;
131
132 // Attempts to cancel a task posted by PostCancellableDelayedTask. Returns
133 // true on success or false otherwise. NOTE this must be called on the thread
134 // this TaskQueue was created by.
135 virtual bool CancelTask(const TaskHandle& handle) = 0;
136
94 // Enable or disable task execution for this queue. NOTE this must be called 137 // Enable or disable task execution for this queue. NOTE this must be called
95 // on the thread this TaskQueue was created by. 138 // on the thread this TaskQueue was created by.
96 virtual void SetQueueEnabled(bool enabled) = 0; 139 virtual void SetQueueEnabled(bool enabled) = 0;
97 140
98 // NOTE this must be called on the thread this TaskQueue was created by. 141 // NOTE this must be called on the thread this TaskQueue was created by.
99 virtual bool IsQueueEnabled() const = 0; 142 virtual bool IsQueueEnabled() const = 0;
100 143
101 // Returns true if the queue is completely empty. 144 // Returns true if the queue is completely empty.
102 virtual bool IsEmpty() const = 0; 145 virtual bool IsEmpty() const = 0;
103 146
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 protected: 194 protected:
152 ~TaskQueue() override {} 195 ~TaskQueue() override {}
153 196
154 DISALLOW_COPY_AND_ASSIGN(TaskQueue); 197 DISALLOW_COPY_AND_ASSIGN(TaskQueue);
155 }; 198 };
156 199
157 } // namespace scheduler 200 } // namespace scheduler
158 } // namespace blink 201 } // namespace blink
159 202
160 #endif // THIRD_PARTY_WEBKIT_PUBLIC_PLATFORM_SCHEDULER_BASE_TASK_QUEUE_H_ 203 #endif // THIRD_PARTY_WEBKIT_PUBLIC_PLATFORM_SCHEDULER_BASE_TASK_QUEUE_H_
OLDNEW
« no previous file with comments | « third_party/WebKit/public/platform/WebTaskRunner.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698