Adding more detail to MessageQueue::Dispatch logging.

Every message will now be traced with the location from which it was
posted, including function name, file and line number.

This CL also writes a normal LOG message when the dispatch took more
than a certain amount of time (currently 50ms).

This logging should help us identify messages that are taking
longer than expected to be dispatched.

R=pthatcher@webrtc.org, tommi@webrtc.org

Review URL: https://codereview.webrtc.org/2019423006 .

Cr-Commit-Position: refs/heads/master@{#13104}
This commit is contained in:
Taylor Brandstetter
2016-06-10 14:17:27 -07:00
parent 51e60305e6
commit 5d97a9a05b
90 changed files with 766 additions and 487 deletions

View File

@ -35,7 +35,7 @@ class MessageQueueTest: public testing::Test, public MessageQueue {
Thread worker;
worker.Start();
return worker.Invoke<bool>(
rtc::Bind(&MessageQueueTest::IsLocked_Worker, this));
RTC_FROM_HERE, rtc::Bind(&MessageQueueTest::IsLocked_Worker, this));
}
};
@ -55,11 +55,11 @@ static void DelayedPostsWithIdenticalTimesAreProcessedInFifoOrder(
MessageQueue* q) {
EXPECT_TRUE(q != NULL);
int64_t now = TimeMillis();
q->PostAt(now, NULL, 3);
q->PostAt(now - 2, NULL, 0);
q->PostAt(now - 1, NULL, 1);
q->PostAt(now, NULL, 4);
q->PostAt(now - 1, NULL, 2);
q->PostAt(RTC_FROM_HERE, now, NULL, 3);
q->PostAt(RTC_FROM_HERE, now - 2, NULL, 0);
q->PostAt(RTC_FROM_HERE, now - 1, NULL, 1);
q->PostAt(RTC_FROM_HERE, now, NULL, 4);
q->PostAt(RTC_FROM_HERE, now - 1, NULL, 2);
Message msg;
for (size_t i=0; i<5; ++i) {
@ -109,7 +109,7 @@ TEST_F(MessageQueueTest, DiposeHandlerWithPostedMessagePending) {
// First, post a dispose.
Dispose(handler);
// Now, post a message, which should *not* be returned by Get().
Post(handler, 1);
Post(RTC_FROM_HERE, handler, 1);
Message msg;
EXPECT_FALSE(Get(&msg, 0));
EXPECT_TRUE(deleted);