MessageLoop::current() returns nullptr in TaskScheduler.
ThreadTaskRunnerHandle and ThreadChecker should be used when possible instead of MessageLoop::current().
E.g.
MessageLoop::current()->task_runner()
should be
ThreadTaskRunnerHandle::Get()
class MyClass {
MyClass() {
message_loop_ = MessageLoop::current();
}
void MyMethod() {
DCHECK_EQ(message_loop_, MessageLoop::current());
}
MessageLoop* message_loop_;
};
should be
class MyClass {
MyClass() = default;
void MyMethod() {
DCHECK(thread_checker_.CalledOnValidThread());
}
ThreadChecker thread_checker_;
};
Comment 1 by gab@chromium.org
, Sep 27 2016