| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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_LOOP_H_ | 5 #ifndef BASE_MESSAGE_LOOP_MESSAGE_LOOP_H_ |
| 6 #define BASE_MESSAGE_LOOP_MESSAGE_LOOP_H_ | 6 #define BASE_MESSAGE_LOOP_MESSAGE_LOOP_H_ |
| 7 | 7 |
| 8 #include <memory> | 8 #include <memory> |
| 9 #include <queue> | 9 #include <queue> |
| 10 #include <string> | 10 #include <string> |
| (...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 198 // | 198 // |
| 199 // The MessageLoop takes ownership of the Task, and deletes it after it has | 199 // The MessageLoop takes ownership of the Task, and deletes it after it has |
| 200 // been Run(). | 200 // been Run(). |
| 201 // | 201 // |
| 202 // PostTask(from_here, task) is equivalent to | 202 // PostTask(from_here, task) is equivalent to |
| 203 // PostDelayedTask(from_here, task, 0). | 203 // PostDelayedTask(from_here, task, 0). |
| 204 // | 204 // |
| 205 // NOTE: These methods may be called on any thread. The Task will be invoked | 205 // NOTE: These methods may be called on any thread. The Task will be invoked |
| 206 // on the thread that executes MessageLoop::Run(). | 206 // on the thread that executes MessageLoop::Run(). |
| 207 void PostTask(const tracked_objects::Location& from_here, | 207 void PostTask(const tracked_objects::Location& from_here, |
| 208 const Closure& task); | 208 OnceClosure task); |
| 209 | 209 |
| 210 void PostDelayedTask(const tracked_objects::Location& from_here, | 210 void PostDelayedTask(const tracked_objects::Location& from_here, |
| 211 const Closure& task, | 211 OnceClosure task, |
| 212 TimeDelta delay); | 212 TimeDelta delay); |
| 213 | 213 |
| 214 // A variant on PostTask that deletes the given object. This is useful | 214 // A variant on PostTask that deletes the given object. This is useful |
| 215 // if the object needs to live until the next run of the MessageLoop (for | 215 // if the object needs to live until the next run of the MessageLoop (for |
| 216 // example, deleting a RenderProcessHost from within an IPC callback is not | 216 // example, deleting a RenderProcessHost from within an IPC callback is not |
| 217 // good). | 217 // good). |
| 218 // | 218 // |
| 219 // NOTE: This method may be called on any thread. The object will be deleted | 219 // NOTE: This method may be called on any thread. The object will be deleted |
| 220 // on the thread that executes MessageLoop::Run(). | 220 // on the thread that executes MessageLoop::Run(). |
| 221 template <class T> | 221 template <class T> |
| (...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 403 bool HasHighResolutionTasks(); | 403 bool HasHighResolutionTasks(); |
| 404 | 404 |
| 405 // Returns true if the message loop is "idle". Provided for testing. | 405 // Returns true if the message loop is "idle". Provided for testing. |
| 406 bool IsIdleForTesting(); | 406 bool IsIdleForTesting(); |
| 407 | 407 |
| 408 // Returns the TaskAnnotator which is used to add debug information to posted | 408 // Returns the TaskAnnotator which is used to add debug information to posted |
| 409 // tasks. | 409 // tasks. |
| 410 debug::TaskAnnotator* task_annotator() { return &task_annotator_; } | 410 debug::TaskAnnotator* task_annotator() { return &task_annotator_; } |
| 411 | 411 |
| 412 // Runs the specified PendingTask. | 412 // Runs the specified PendingTask. |
| 413 void RunTask(const PendingTask& pending_task); | 413 void RunTask(PendingTask pending_task); |
| 414 | 414 |
| 415 #if defined(OS_WIN) | 415 #if defined(OS_WIN) |
| 416 // TODO (stanisc): crbug.com/596190: Remove this after the signaling issue | 416 // TODO (stanisc): crbug.com/596190: Remove this after the signaling issue |
| 417 // has been investigated. | 417 // has been investigated. |
| 418 // This should be used for diagnostic only. If message pump wake-up mechanism | 418 // This should be used for diagnostic only. If message pump wake-up mechanism |
| 419 // is based on auto-reset event this call would reset the event to unset | 419 // is based on auto-reset event this call would reset the event to unset |
| 420 // state. | 420 // state. |
| 421 bool MessagePumpWasSignaled(); | 421 bool MessagePumpWasSignaled(); |
| 422 #endif | 422 #endif |
| 423 | 423 |
| (...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 726 | 726 |
| 727 // Do not add any member variables to MessageLoopForIO! This is important b/c | 727 // Do not add any member variables to MessageLoopForIO! This is important b/c |
| 728 // MessageLoopForIO is often allocated via MessageLoop(TYPE_IO). Any extra | 728 // MessageLoopForIO is often allocated via MessageLoop(TYPE_IO). Any extra |
| 729 // data that you need should be stored on the MessageLoop's pump_ instance. | 729 // data that you need should be stored on the MessageLoop's pump_ instance. |
| 730 static_assert(sizeof(MessageLoop) == sizeof(MessageLoopForIO), | 730 static_assert(sizeof(MessageLoop) == sizeof(MessageLoopForIO), |
| 731 "MessageLoopForIO should not have extra member variables"); | 731 "MessageLoopForIO should not have extra member variables"); |
| 732 | 732 |
| 733 } // namespace base | 733 } // namespace base |
| 734 | 734 |
| 735 #endif // BASE_MESSAGE_LOOP_MESSAGE_LOOP_H_ | 735 #endif // BASE_MESSAGE_LOOP_MESSAGE_LOOP_H_ |
| OLD | NEW |