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() {
this);
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()) {
mojo_thread_message_loop_->RemoveDestructionObserver(this);
mojo_thread_message_loop_ = base::MessageLoopCurrent::GetNull();
mojo_thread_task_runner_ = nullptr;
} else {
// If mojom::DiscardableSharedMemoryManager implementation is running in
// another thread, we need invalidate all related weak ptrs on that
......@@ -252,7 +255,7 @@ DiscardableSharedMemoryManager::~DiscardableSharedMemoryManager() {
base::WaitableEvent event(
base::WaitableEvent::ResetPolicy::MANUAL,
base::WaitableEvent::InitialState::NOT_SIGNALED);
bool result = mojo_thread_message_loop_->task_runner()->PostTask(
bool result = mojo_thread_task_runner_->PostTask(
FROM_HERE,
base::BindOnce(
&DiscardableSharedMemoryManager::InvalidateMojoThreadWeakPtrs,
......@@ -269,9 +272,11 @@ void DiscardableSharedMemoryManager::Bind(
const service_manager::BindSourceInfo& source_info) {
DCHECK(!mojo_thread_message_loop_ ||
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_->AddDestructionObserver(this);
mojo_thread_task_runner_ = base::ThreadTaskRunnerHandle::Get();
}
mojo::MakeStrongBinding(
......@@ -406,8 +411,7 @@ size_t DiscardableSharedMemoryManager::GetBytesAllocated() {
void DiscardableSharedMemoryManager::WillDestroyCurrentMessageLoop() {
// The mojo thead is going to be destroyed. We should invalidate all related
// weak ptrs and remove the destrunction observer.
DCHECK(
mojo_thread_message_loop_->task_runner()->RunsTasksInCurrentSequence());
DCHECK(mojo_thread_task_runner_->RunsTasksInCurrentSequence());
DLOG_IF(WARNING, mojo_thread_weak_ptr_factory_.HasWeakPtrs())
<< "Some MojoDiscardableSharedMemoryManagerImpls are still alive. They "
"will be leaked.";
......@@ -617,8 +621,7 @@ void DiscardableSharedMemoryManager::ScheduleEnforceMemoryPolicy() {
void DiscardableSharedMemoryManager::InvalidateMojoThreadWeakPtrs(
base::WaitableEvent* event) {
DCHECK(
mojo_thread_message_loop_->task_runner()->RunsTasksInCurrentSequence());
DCHECK(mojo_thread_task_runner_->RunsTasksInCurrentSequence());
mojo_thread_weak_ptr_factory_.InvalidateWeakPtrs();
mojo_thread_message_loop_->RemoveDestructionObserver(this);
mojo_thread_message_loop_ = base::MessageLoopCurrent::GetNull();
......
......@@ -23,6 +23,7 @@
#include "base/memory/weak_ptr.h"
#include "base/message_loop/message_loop_current.h"
#include "base/process/process_handle.h"
#include "base/single_thread_task_runner.h"
#include "base/synchronization/lock.h"
#include "base/threading/thread_task_runner_handle.h"
#include "base/trace_event/memory_dump_provider.h"
......@@ -164,6 +165,7 @@ class DISCARDABLE_MEMORY_EXPORT DiscardableSharedMemoryManager
// A prerequisite for this is allowing objects to be bound to the lifetime
// of a sequence directly.
base::MessageLoopCurrent mojo_thread_message_loop_;
scoped_refptr<base::SingleThreadTaskRunner> mojo_thread_task_runner_;
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