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

Unified Diff: content/common/host_discardable_shared_memory_manager.cc

Issue 1430743002: content: Always run EnforceMemoryPolicy() callbacks on the same thread. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 2 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/common/host_discardable_shared_memory_manager.cc
diff --git a/content/common/host_discardable_shared_memory_manager.cc b/content/common/host_discardable_shared_memory_manager.cc
index 539136179e3affa9d0b61f74a7945311cd9476dc..2ea9821314f9a1a696b4350ef201b9f184e65b0e 100644
--- a/content/common/host_discardable_shared_memory_manager.cc
+++ b/content/common/host_discardable_shared_memory_manager.cc
@@ -123,9 +123,17 @@ HostDiscardableSharedMemoryManager::HostDiscardableSharedMemoryManager()
memory_pressure_listener_(new base::MemoryPressureListener(
base::Bind(&HostDiscardableSharedMemoryManager::OnMemoryPressure,
base::Unretained(this)))),
+ // Current thread might not have a task runner in tests.
+ enforce_memory_policy_task_runner_(
+ base::ThreadTaskRunnerHandle::IsSet()
+ ? base::ThreadTaskRunnerHandle::Get()
+ : nullptr),
enforce_memory_policy_pending_(false),
weak_ptr_factory_(this) {
DCHECK_NE(memory_limit_, 0u);
+ enforce_memory_policy_callback_ =
+ base::Bind(&HostDiscardableSharedMemoryManager::EnforceMemoryPolicy,
+ weak_ptr_factory_.GetWeakPtr());
base::trace_event::MemoryDumpManager::GetInstance()->RegisterDumpProvider(
this);
}
@@ -486,10 +494,9 @@ void HostDiscardableSharedMemoryManager::ScheduleEnforceMemoryPolicy() {
return;
enforce_memory_policy_pending_ = true;
- base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
- FROM_HERE,
- base::Bind(&HostDiscardableSharedMemoryManager::EnforceMemoryPolicy,
- weak_ptr_factory_.GetWeakPtr()),
+ DCHECK(enforce_memory_policy_task_runner_);
+ enforce_memory_policy_task_runner_->PostDelayedTask(
+ FROM_HERE, enforce_memory_policy_callback_,
base::TimeDelta::FromMilliseconds(kEnforceMemoryPolicyDelayMs));
}

Powered by Google App Engine
This is Rietveld 408576698