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

Unified Diff: content/child/webthread_impl.cc

Issue 922733002: scheduler: Implement task observers (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 10 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
Index: content/child/webthread_impl.cc
diff --git a/content/child/webthread_impl.cc b/content/child/webthread_impl.cc
index 9b697def31ab4d1f84e3002bc3a5e36bb8244722..2e30a648b80f8a4e5ea38aad65c61c36ea026500 100644
--- a/content/child/webthread_impl.cc
+++ b/content/child/webthread_impl.cc
@@ -43,7 +43,7 @@ void WebThreadBase::addTaskObserver(TaskObserver* observer) {
std::make_pair(observer, static_cast<TaskObserverAdapter*>(NULL)));
if (result.second)
result.first->second = new TaskObserverAdapter(observer);
- base::MessageLoop::current()->AddTaskObserver(result.first->second);
+ AddTaskObserverInternal(result.first->second);
}
void WebThreadBase::removeTaskObserver(TaskObserver* observer) {
@@ -51,11 +51,21 @@ void WebThreadBase::removeTaskObserver(TaskObserver* observer) {
TaskObserverMap::iterator iter = task_observer_map_.find(observer);
if (iter == task_observer_map_.end())
return;
- base::MessageLoop::current()->RemoveTaskObserver(iter->second);
+ RemoveTaskObserverInternal(iter->second);
delete iter->second;
task_observer_map_.erase(iter);
}
+void WebThreadBase::AddTaskObserverInternal(
+ base::MessageLoop::TaskObserver* observer) {
+ base::MessageLoop::current()->AddTaskObserver(observer);
alex clarke (OOO till 29th) 2015/02/13 11:02:07 Do we need DCHECK(main_thread_checker_.CalledOnVal
+}
+
+void WebThreadBase::RemoveTaskObserverInternal(
+ base::MessageLoop::TaskObserver* observer) {
+ base::MessageLoop::current()->RemoveTaskObserver(observer);
+}
+
WebThreadImpl::WebThreadImpl(const char* name)
: thread_(new base::Thread(name)) {
thread_->Start();
@@ -84,7 +94,9 @@ WebThreadImpl::WebThreadImpl(const char* name)
// are no reference counter modification like [A] (because task->run() is not
// executed), so there are no race conditions.
// See https://crbug.com/390851 for more details.
-static void RunWebThreadTask(scoped_ptr<blink::WebThread::Task> task) {
+//
+// static
+void WebThreadBase::RunWebThreadTask(scoped_ptr<blink::WebThread::Task> task) {
task->run();
}

Powered by Google App Engine
This is Rietveld 408576698