Commit 26598d43 authored by Etienne Pierre-doray's avatar Etienne Pierre-doray Committed by Commit Bot

[MessageLoop]: Replace MessageLoopCurrent::task_runner() in /components/discardable_memory.

MessageLoopCurrent::task_runner() is depecated.
This CL replaces it with with ThreadTaskRunnerHandle::Get().
A small step towards deleting MessageLoop.

This CL was generated with git cl split.
Refer to the top-level CL if necessary :
https://chromium-review.googlesource.com/c/chromium/src/+/1631693

Please CQ if LGTY!

This CL was uploaded by git cl split.

R=penghuang@chromium.org

Bug: 616447
Change-Id: I42fb5b8d372a39dfe0493d49e09caeea571bd59f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1637458
Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
Auto-Submit: Etienne Pierre-Doray <etiennep@chromium.org>
Reviewed-by: default avatarPeng Huang <penghuang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#667190}
parent c2b12578
...@@ -242,9 +242,12 @@ DiscardableSharedMemoryManager::~DiscardableSharedMemoryManager() { ...@@ -242,9 +242,12 @@ DiscardableSharedMemoryManager::~DiscardableSharedMemoryManager() {
this); this);
if (mojo_thread_message_loop_) { if (mojo_thread_message_loop_) {
// TODO(etiennep): Get rid of mojo_thread_message_loop_ entirely.
DCHECK(mojo_thread_task_runner_);
if (mojo_thread_message_loop_ == base::MessageLoopCurrent::Get()) { if (mojo_thread_message_loop_ == base::MessageLoopCurrent::Get()) {
mojo_thread_message_loop_->RemoveDestructionObserver(this); mojo_thread_message_loop_->RemoveDestructionObserver(this);
mojo_thread_message_loop_ = base::MessageLoopCurrent::GetNull(); mojo_thread_message_loop_ = base::MessageLoopCurrent::GetNull();
mojo_thread_task_runner_ = nullptr;
} else { } else {
// If mojom::DiscardableSharedMemoryManager implementation is running in // If mojom::DiscardableSharedMemoryManager implementation is running in
// another thread, we need invalidate all related weak ptrs on that // another thread, we need invalidate all related weak ptrs on that
...@@ -252,7 +255,7 @@ DiscardableSharedMemoryManager::~DiscardableSharedMemoryManager() { ...@@ -252,7 +255,7 @@ DiscardableSharedMemoryManager::~DiscardableSharedMemoryManager() {
base::WaitableEvent event( base::WaitableEvent event(
base::WaitableEvent::ResetPolicy::MANUAL, base::WaitableEvent::ResetPolicy::MANUAL,
base::WaitableEvent::InitialState::NOT_SIGNALED); base::WaitableEvent::InitialState::NOT_SIGNALED);
bool result = mojo_thread_message_loop_->task_runner()->PostTask( bool result = mojo_thread_task_runner_->PostTask(
FROM_HERE, FROM_HERE,
base::BindOnce( base::BindOnce(
&DiscardableSharedMemoryManager::InvalidateMojoThreadWeakPtrs, &DiscardableSharedMemoryManager::InvalidateMojoThreadWeakPtrs,
...@@ -269,9 +272,11 @@ void DiscardableSharedMemoryManager::Bind( ...@@ -269,9 +272,11 @@ void DiscardableSharedMemoryManager::Bind(
const service_manager::BindSourceInfo& source_info) { const service_manager::BindSourceInfo& source_info) {
DCHECK(!mojo_thread_message_loop_ || DCHECK(!mojo_thread_message_loop_ ||
mojo_thread_message_loop_ == base::MessageLoopCurrent::Get()); mojo_thread_message_loop_ == base::MessageLoopCurrent::Get());
if (!mojo_thread_message_loop_) { if (!mojo_thread_task_runner_) {
DCHECK(!mojo_thread_message_loop_);
mojo_thread_message_loop_ = base::MessageLoopCurrent::Get(); mojo_thread_message_loop_ = base::MessageLoopCurrent::Get();
mojo_thread_message_loop_->AddDestructionObserver(this); mojo_thread_message_loop_->AddDestructionObserver(this);
mojo_thread_task_runner_ = base::ThreadTaskRunnerHandle::Get();
} }
mojo::MakeStrongBinding( mojo::MakeStrongBinding(
...@@ -406,8 +411,7 @@ size_t DiscardableSharedMemoryManager::GetBytesAllocated() { ...@@ -406,8 +411,7 @@ size_t DiscardableSharedMemoryManager::GetBytesAllocated() {
void DiscardableSharedMemoryManager::WillDestroyCurrentMessageLoop() { void DiscardableSharedMemoryManager::WillDestroyCurrentMessageLoop() {
// The mojo thead is going to be destroyed. We should invalidate all related // The mojo thead is going to be destroyed. We should invalidate all related
// weak ptrs and remove the destrunction observer. // weak ptrs and remove the destrunction observer.
DCHECK( DCHECK(mojo_thread_task_runner_->RunsTasksInCurrentSequence());
mojo_thread_message_loop_->task_runner()->RunsTasksInCurrentSequence());
DLOG_IF(WARNING, mojo_thread_weak_ptr_factory_.HasWeakPtrs()) DLOG_IF(WARNING, mojo_thread_weak_ptr_factory_.HasWeakPtrs())
<< "Some MojoDiscardableSharedMemoryManagerImpls are still alive. They " << "Some MojoDiscardableSharedMemoryManagerImpls are still alive. They "
"will be leaked."; "will be leaked.";
...@@ -617,8 +621,7 @@ void DiscardableSharedMemoryManager::ScheduleEnforceMemoryPolicy() { ...@@ -617,8 +621,7 @@ void DiscardableSharedMemoryManager::ScheduleEnforceMemoryPolicy() {
void DiscardableSharedMemoryManager::InvalidateMojoThreadWeakPtrs( void DiscardableSharedMemoryManager::InvalidateMojoThreadWeakPtrs(
base::WaitableEvent* event) { base::WaitableEvent* event) {
DCHECK( DCHECK(mojo_thread_task_runner_->RunsTasksInCurrentSequence());
mojo_thread_message_loop_->task_runner()->RunsTasksInCurrentSequence());
mojo_thread_weak_ptr_factory_.InvalidateWeakPtrs(); mojo_thread_weak_ptr_factory_.InvalidateWeakPtrs();
mojo_thread_message_loop_->RemoveDestructionObserver(this); mojo_thread_message_loop_->RemoveDestructionObserver(this);
mojo_thread_message_loop_ = base::MessageLoopCurrent::GetNull(); mojo_thread_message_loop_ = base::MessageLoopCurrent::GetNull();
......
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
#include "base/memory/weak_ptr.h" #include "base/memory/weak_ptr.h"
#include "base/message_loop/message_loop_current.h" #include "base/message_loop/message_loop_current.h"
#include "base/process/process_handle.h" #include "base/process/process_handle.h"
#include "base/single_thread_task_runner.h"
#include "base/synchronization/lock.h" #include "base/synchronization/lock.h"
#include "base/threading/thread_task_runner_handle.h" #include "base/threading/thread_task_runner_handle.h"
#include "base/trace_event/memory_dump_provider.h" #include "base/trace_event/memory_dump_provider.h"
...@@ -164,6 +165,7 @@ class DISCARDABLE_MEMORY_EXPORT DiscardableSharedMemoryManager ...@@ -164,6 +165,7 @@ class DISCARDABLE_MEMORY_EXPORT DiscardableSharedMemoryManager
// A prerequisite for this is allowing objects to be bound to the lifetime // A prerequisite for this is allowing objects to be bound to the lifetime
// of a sequence directly. // of a sequence directly.
base::MessageLoopCurrent mojo_thread_message_loop_; base::MessageLoopCurrent mojo_thread_message_loop_;
scoped_refptr<base::SingleThreadTaskRunner> mojo_thread_task_runner_;
base::WeakPtrFactory<DiscardableSharedMemoryManager> weak_ptr_factory_; base::WeakPtrFactory<DiscardableSharedMemoryManager> weak_ptr_factory_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment