Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(308)

Unified Diff: webrtc/base/asyncinvoker.cc

Issue 2019423006: Adding more detail to MessageQueue::Dispatch logging. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Fixing one more place where RTC_FROM_HERE wasn't used. Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/base/asyncinvoker.h ('k') | webrtc/base/asyncinvoker-inl.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/base/asyncinvoker.cc
diff --git a/webrtc/base/asyncinvoker.cc b/webrtc/base/asyncinvoker.cc
index 8285d5545b255427e39c42136e932c140600cd80..83a873811e7258a16a982c39609598114ca78055 100644
--- a/webrtc/base/asyncinvoker.cc
+++ b/webrtc/base/asyncinvoker.cc
@@ -41,7 +41,8 @@ void AsyncInvoker::Flush(Thread* thread, uint32_t id /*= MQID_ANY*/) {
// Run this on |thread| to reduce the number of context switches.
if (Thread::Current() != thread) {
- thread->Invoke<void>(Bind(&AsyncInvoker::Flush, this, thread, id));
+ thread->Invoke<void>(RTC_FROM_HERE,
+ Bind(&AsyncInvoker::Flush, this, thread, id));
return;
}
@@ -49,23 +50,24 @@ void AsyncInvoker::Flush(Thread* thread, uint32_t id /*= MQID_ANY*/) {
thread->Clear(this, id, &removed);
for (MessageList::iterator it = removed.begin(); it != removed.end(); ++it) {
// This message was pending on this thread, so run it now.
- thread->Send(it->phandler,
- it->message_id,
- it->pdata);
+ thread->Send(it->posted_from, it->phandler, it->message_id, it->pdata);
}
}
-void AsyncInvoker::DoInvoke(Thread* thread,
+void AsyncInvoker::DoInvoke(const Location& posted_from,
+ Thread* thread,
const scoped_refptr<AsyncClosure>& closure,
uint32_t id) {
if (destroying_) {
LOG(LS_WARNING) << "Tried to invoke while destroying the invoker.";
return;
}
- thread->Post(this, id, new ScopedRefMessageData<AsyncClosure>(closure));
+ thread->Post(posted_from, this, id,
+ new ScopedRefMessageData<AsyncClosure>(closure));
}
-void AsyncInvoker::DoInvokeDelayed(Thread* thread,
+void AsyncInvoker::DoInvokeDelayed(const Location& posted_from,
+ Thread* thread,
const scoped_refptr<AsyncClosure>& closure,
uint32_t delay_ms,
uint32_t id) {
@@ -73,7 +75,7 @@ void AsyncInvoker::DoInvokeDelayed(Thread* thread,
LOG(LS_WARNING) << "Tried to invoke while destroying the invoker.";
return;
}
- thread->PostDelayed(delay_ms, this, id,
+ thread->PostDelayed(posted_from, delay_ms, this, id,
new ScopedRefMessageData<AsyncClosure>(closure));
}
@@ -100,9 +102,13 @@ void GuardedAsyncInvoker::ThreadDestroyed() {
thread_ = nullptr;
}
-NotifyingAsyncClosureBase::NotifyingAsyncClosureBase(AsyncInvoker* invoker,
- Thread* calling_thread)
- : invoker_(invoker), calling_thread_(calling_thread) {
+NotifyingAsyncClosureBase::NotifyingAsyncClosureBase(
+ AsyncInvoker* invoker,
+ const Location& callback_posted_from,
+ Thread* calling_thread)
+ : invoker_(invoker),
+ callback_posted_from_(callback_posted_from),
+ calling_thread_(calling_thread) {
calling_thread->SignalQueueDestroyed.connect(
this, &NotifyingAsyncClosureBase::CancelCallback);
invoker->SignalInvokerDestroyed.connect(
@@ -116,7 +122,8 @@ NotifyingAsyncClosureBase::~NotifyingAsyncClosureBase() {
void NotifyingAsyncClosureBase::TriggerCallback() {
CritScope cs(&crit_);
if (!CallbackCanceled() && !callback_.empty()) {
- invoker_->AsyncInvoke<void>(calling_thread_, callback_);
+ invoker_->AsyncInvoke<void>(callback_posted_from_, calling_thread_,
+ callback_);
}
}
« no previous file with comments | « webrtc/base/asyncinvoker.h ('k') | webrtc/base/asyncinvoker-inl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698