| Index: base/message_loop/message_pump.h
|
| diff --git a/base/message_loop/message_pump.h b/base/message_loop/message_pump.h
|
| index 0ebba3a3e60ccfd07abb2808e2632a254a76747c..816bb3c3d39eb88097731ad9cc2e4178c4ae1a63 100644
|
| --- a/base/message_loop/message_pump.h
|
| +++ b/base/message_loop/message_pump.h
|
| @@ -6,10 +6,12 @@
|
| #define BASE_MESSAGE_LOOP_MESSAGE_PUMP_H_
|
|
|
| #include "base/base_export.h"
|
| +#include "base/basictypes.h"
|
| #include "base/threading/non_thread_safe.h"
|
|
|
| namespace base {
|
|
|
| +class TimeDelta;
|
| class TimeTicks;
|
|
|
| class BASE_EXPORT MessagePump : public NonThreadSafe {
|
| @@ -39,6 +41,19 @@ class BASE_EXPORT MessagePump : public NonThreadSafe {
|
| // Called from within Run just before the message pump goes to sleep.
|
| // Returns true to indicate that idle work was done.
|
| virtual bool DoIdleWork() = 0;
|
| +
|
| + // Via the two required out pointers, returns the length of the Delegate's
|
| + // work queue and the length of time that the first item in the queue has
|
| + // been waiting to run. If the work queue is empty, the count and delay
|
| + // will both be zero.
|
| + // Note that this only counts the tasks in the ready-to-run queue and not
|
| + // the incoming queue that is used by other threads to post tasks. The
|
| + // latter queue requires holding a lock, which is deemed too expensive for
|
| + // instrumentation code. Under normal conditions, the incoming queue should
|
| + // be small or zero, but under heavy loads it may be much larger and
|
| + // |queue_count| may be up to 1/4 the size of the incoming queue.
|
| + virtual void GetQueueingInformation(size_t* queue_count,
|
| + TimeDelta* queueing_delay) {}
|
| };
|
|
|
| MessagePump();
|
|
|