OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 BASE_MESSAGE_LOOP_MESSAGE_PUMP_WIN_H_ | 5 #ifndef BASE_MESSAGE_LOOP_MESSAGE_PUMP_WIN_H_ |
6 #define BASE_MESSAGE_LOOP_MESSAGE_PUMP_WIN_H_ | 6 #define BASE_MESSAGE_LOOP_MESSAGE_PUMP_WIN_H_ |
7 | 7 |
8 #include <windows.h> | 8 #include <windows.h> |
9 | 9 |
10 #include <list> | 10 #include <list> |
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
157 ~MessagePumpForGpu() override; | 157 ~MessagePumpForGpu() override; |
158 | 158 |
159 // Factory methods. | 159 // Factory methods. |
160 static void InitFactory(); | 160 static void InitFactory(); |
161 static std::unique_ptr<MessagePump> CreateMessagePumpForGpu(); | 161 static std::unique_ptr<MessagePump> CreateMessagePumpForGpu(); |
162 | 162 |
163 // MessagePump methods: | 163 // MessagePump methods: |
164 void ScheduleWork() override; | 164 void ScheduleWork() override; |
165 void ScheduleDelayedWork(const TimeTicks& delayed_work_time) override; | 165 void ScheduleDelayedWork(const TimeTicks& delayed_work_time) override; |
166 | 166 |
167 // TODO (stanisc): crbug.com/596190: Remove this after the signaling issue | |
168 // has been investigated. | |
169 // This should be used for diagnostic only. If message pump wake-up mechanism | |
170 // is based on auto-reset event this call would reset the event to unset | |
171 // state. | |
172 bool WasSignaled() override; | |
173 | |
174 private: | 167 private: |
175 // MessagePumpWin methods: | 168 // MessagePumpWin methods: |
176 void DoRunLoop() override; | 169 void DoRunLoop() override; |
177 | 170 |
178 void WaitForWork(); | 171 void WaitForWork(); |
179 bool ProcessNextMessage(); | 172 bool ProcessNextMessage(); |
180 | 173 |
181 win::ScopedHandle event_; | 174 win::ScopedHandle event_; |
182 | 175 |
183 // Used to help diagnose hangs. | 176 // Used to help diagnose hangs. |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
291 // The completion port associated with this thread. | 284 // The completion port associated with this thread. |
292 win::ScopedHandle port_; | 285 win::ScopedHandle port_; |
293 // This list will be empty almost always. It stores IO completions that have | 286 // This list will be empty almost always. It stores IO completions that have |
294 // not been delivered yet because somebody was doing cleanup. | 287 // not been delivered yet because somebody was doing cleanup. |
295 std::list<IOItem> completed_io_; | 288 std::list<IOItem> completed_io_; |
296 }; | 289 }; |
297 | 290 |
298 } // namespace base | 291 } // namespace base |
299 | 292 |
300 #endif // BASE_MESSAGE_LOOP_MESSAGE_PUMP_WIN_H_ | 293 #endif // BASE_MESSAGE_LOOP_MESSAGE_PUMP_WIN_H_ |
OLD | NEW |