Index: jingle/glue/thread_wrapper.cc |
diff --git a/jingle/glue/thread_wrapper.cc b/jingle/glue/thread_wrapper.cc |
index 100ed800d76ad36ff035a925c205174924c7b574..f49c6e9cd745d79a9f7fba857bc57f86c2e23c0c 100644 |
--- a/jingle/glue/thread_wrapper.cc |
+++ b/jingle/glue/thread_wrapper.cc |
@@ -12,6 +12,7 @@ |
#include "base/lazy_instance.h" |
#include "base/macros.h" |
#include "base/threading/thread_local.h" |
+#include "base/trace_event/trace_event.h" |
#include "third_party/webrtc/base/nullsocketserver.h" |
namespace jingle_glue { |
@@ -92,18 +93,20 @@ void JingleThreadWrapper::WillDestroyCurrentMessageLoop() { |
delete this; |
} |
-void JingleThreadWrapper::Post(rtc::MessageHandler* handler, |
+void JingleThreadWrapper::Post(const rtc::Location& posted_from, |
+ rtc::MessageHandler* handler, |
uint32_t message_id, |
rtc::MessageData* data, |
bool time_sensitive) { |
- PostTaskInternal(0, handler, message_id, data); |
+ PostTaskInternal(posted_from, 0, handler, message_id, data); |
} |
-void JingleThreadWrapper::PostDelayed(int delay_ms, |
+void JingleThreadWrapper::PostDelayed(const rtc::Location& posted_from, |
+ int delay_ms, |
rtc::MessageHandler* handler, |
uint32_t message_id, |
rtc::MessageData* data) { |
- PostTaskInternal(delay_ms, handler, message_id, data); |
+ PostTaskInternal(posted_from, delay_ms, handler, message_id, data); |
} |
void JingleThreadWrapper::Clear(rtc::MessageHandler* handler, |
@@ -147,7 +150,15 @@ void JingleThreadWrapper::Clear(rtc::MessageHandler* handler, |
} |
} |
-void JingleThreadWrapper::Send(rtc::MessageHandler* handler, |
+void JingleThreadWrapper::Dispatch(rtc::Message* message) { |
+ TRACE_EVENT2("webrtc", "JingleThreadWrapper::Dispatch", "src_file_and_line", |
+ message->posted_from.file_and_line(), "src_func", |
+ message->posted_from.function_name()); |
+ message->phandler->OnMessage(message); |
+} |
+ |
+void JingleThreadWrapper::Send(const rtc::Location& posted_from, |
+ rtc::MessageHandler* handler, |
uint32_t id, |
rtc::MessageData* data) { |
if (fStop_) |
@@ -158,12 +169,13 @@ void JingleThreadWrapper::Send(rtc::MessageHandler* handler, |
"thread that has JingleThreadWrapper."; |
rtc::Message message; |
+ message.posted_from = posted_from; |
message.phandler = handler; |
message.message_id = id; |
message.pdata = data; |
if (current_thread == this) { |
- handler->OnMessage(&message); |
+ Dispatch(&message); |
return; |
} |
@@ -214,18 +226,20 @@ void JingleThreadWrapper::ProcessPendingSends() { |
} |
} |
if (pending_send) { |
- pending_send->message.phandler->OnMessage(&pending_send->message); |
+ Dispatch(&pending_send->message); |
pending_send->done_event.Signal(); |
} |
} |
} |
-void JingleThreadWrapper::PostTaskInternal(int delay_ms, |
+void JingleThreadWrapper::PostTaskInternal(const rtc::Location& posted_from, |
+ int delay_ms, |
rtc::MessageHandler* handler, |
uint32_t message_id, |
rtc::MessageData* data) { |
int task_id; |
rtc::Message message; |
+ message.posted_from = posted_from; |
message.phandler = handler; |
message.message_id = message_id; |
message.pdata = data; |
@@ -265,7 +279,7 @@ void JingleThreadWrapper::RunTask(int task_id) { |
DCHECK(message.phandler == nullptr); |
delete message.pdata; |
} else { |
- message.phandler->OnMessage(&message); |
+ Dispatch(&message); |
} |
} |
} |
@@ -295,17 +309,14 @@ bool JingleThreadWrapper::Peek(rtc::Message*, int) { |
return false; |
} |
-void JingleThreadWrapper::PostAt(uint32_t, |
+void JingleThreadWrapper::PostAt(const rtc::Location& posted_from, |
+ uint32_t, |
rtc::MessageHandler*, |
uint32_t, |
rtc::MessageData*) { |
NOTREACHED(); |
} |
-void JingleThreadWrapper::Dispatch(rtc::Message* message) { |
- NOTREACHED(); |
-} |
- |
void JingleThreadWrapper::ReceiveSends() { |
NOTREACHED(); |
} |