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

Side by Side Diff: components/discardable_memory/service/discardable_shared_memory_manager.cc

Issue 2589253002: Remove discardable_memory::DSMM::{Create,Get}Instance() (Closed)
Patch Set: Fix trybot Created 3 years, 12 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/discardable_memory/service/discardable_shared_memory_manage r.h" 5 #include "components/discardable_memory/service/discardable_shared_memory_manage r.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/atomic_sequence_num.h" 10 #include "base/atomic_sequence_num.h"
11 #include "base/bind.h" 11 #include "base/bind.h"
12 #include "base/callback.h" 12 #include "base/callback.h"
13 #include "base/command_line.h" 13 #include "base/command_line.h"
14 #include "base/debug/crash_logging.h" 14 #include "base/debug/crash_logging.h"
15 #include "base/lazy_instance.h"
16 #include "base/macros.h" 15 #include "base/macros.h"
17 #include "base/memory/discardable_memory.h" 16 #include "base/memory/discardable_memory.h"
18 #include "base/memory/memory_coordinator_client_registry.h" 17 #include "base/memory/memory_coordinator_client_registry.h"
19 #include "base/memory/ptr_util.h" 18 #include "base/memory/ptr_util.h"
20 #include "base/numerics/safe_math.h" 19 #include "base/numerics/safe_math.h"
21 #include "base/process/memory.h" 20 #include "base/process/memory.h"
22 #include "base/strings/string_number_conversions.h" 21 #include "base/strings/string_number_conversions.h"
23 #include "base/strings/stringprintf.h" 22 #include "base/strings/stringprintf.h"
24 #include "base/sys_info.h" 23 #include "base/sys_info.h"
25 #include "base/threading/thread_task_runner_handle.h" 24 #include "base/threading/thread_task_runner_handle.h"
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
200 max_default_memory_limit = 199 max_default_memory_limit =
201 std::min(max_default_memory_limit, shmem_dir_amount_of_free_space / 2); 200 std::min(max_default_memory_limit, shmem_dir_amount_of_free_space / 2);
202 } 201 }
203 #endif 202 #endif
204 203
205 // Allow 25% of physical memory to be used for discardable memory. 204 // Allow 25% of physical memory to be used for discardable memory.
206 return std::min(max_default_memory_limit, 205 return std::min(max_default_memory_limit,
207 base::SysInfo::AmountOfPhysicalMemory() / 4); 206 base::SysInfo::AmountOfPhysicalMemory() / 4);
208 } 207 }
209 208
210 base::LazyInstance<DiscardableSharedMemoryManager>
211 g_discardable_shared_memory_manager = LAZY_INSTANCE_INITIALIZER;
212
213 const int kEnforceMemoryPolicyDelayMs = 1000; 209 const int kEnforceMemoryPolicyDelayMs = 1000;
214 210
215 // Global atomic to generate unique discardable shared memory IDs. 211 // Global atomic to generate unique discardable shared memory IDs.
216 base::StaticAtomicSequenceNumber g_next_discardable_shared_memory_id; 212 base::StaticAtomicSequenceNumber g_next_discardable_shared_memory_id;
217 213
218 } // namespace 214 } // namespace
219 215
220 DiscardableSharedMemoryManager::MemorySegment::MemorySegment( 216 DiscardableSharedMemoryManager::MemorySegment::MemorySegment(
221 std::unique_ptr<base::DiscardableSharedMemory> memory) 217 std::unique_ptr<base::DiscardableSharedMemory> memory)
222 : memory_(std::move(memory)) {} 218 : memory_(std::move(memory)) {}
(...skipping 20 matching lines...) Expand all
243 this, "DiscardableSharedMemoryManager", 239 this, "DiscardableSharedMemoryManager",
244 base::ThreadTaskRunnerHandle::Get()); 240 base::ThreadTaskRunnerHandle::Get());
245 base::MemoryCoordinatorClientRegistry::GetInstance()->Register(this); 241 base::MemoryCoordinatorClientRegistry::GetInstance()->Register(this);
246 } 242 }
247 243
248 DiscardableSharedMemoryManager::~DiscardableSharedMemoryManager() { 244 DiscardableSharedMemoryManager::~DiscardableSharedMemoryManager() {
249 base::trace_event::MemoryDumpManager::GetInstance()->UnregisterDumpProvider( 245 base::trace_event::MemoryDumpManager::GetInstance()->UnregisterDumpProvider(
250 this); 246 this);
251 } 247 }
252 248
253 // static
254 DiscardableSharedMemoryManager*
255 DiscardableSharedMemoryManager::CreateInstance() {
256 DCHECK(g_discardable_shared_memory_manager == nullptr);
257 return g_discardable_shared_memory_manager.Pointer();
258 }
259
260 // static
261 DiscardableSharedMemoryManager* DiscardableSharedMemoryManager::GetInstance() {
262 DCHECK(!(g_discardable_shared_memory_manager == nullptr));
263 return g_discardable_shared_memory_manager.Pointer();
264 }
265
266 void DiscardableSharedMemoryManager::Bind( 249 void DiscardableSharedMemoryManager::Bind(
267 mojom::DiscardableSharedMemoryManagerRequest request) { 250 mojom::DiscardableSharedMemoryManagerRequest request) {
268 mojo::MakeStrongBinding( 251 mojo::MakeStrongBinding(
269 base::MakeUnique<MojoDiscardableSharedMemoryManagerImpl>( 252 base::MakeUnique<MojoDiscardableSharedMemoryManagerImpl>(
270 next_client_id_++, this), 253 next_client_id_++, this),
271 std::move(request)); 254 std::move(request));
272 } 255 }
273 256
274 std::unique_ptr<base::DiscardableMemory> 257 std::unique_ptr<base::DiscardableMemory>
275 DiscardableSharedMemoryManager::AllocateLockedDiscardableMemory(size_t size) { 258 DiscardableSharedMemoryManager::AllocateLockedDiscardableMemory(size_t size) {
(...skipping 358 matching lines...) Expand 10 before | Expand all | Expand 10 after
634 return; 617 return;
635 618
636 enforce_memory_policy_pending_ = true; 619 enforce_memory_policy_pending_ = true;
637 DCHECK(enforce_memory_policy_task_runner_); 620 DCHECK(enforce_memory_policy_task_runner_);
638 enforce_memory_policy_task_runner_->PostDelayedTask( 621 enforce_memory_policy_task_runner_->PostDelayedTask(
639 FROM_HERE, enforce_memory_policy_callback_, 622 FROM_HERE, enforce_memory_policy_callback_,
640 base::TimeDelta::FromMilliseconds(kEnforceMemoryPolicyDelayMs)); 623 base::TimeDelta::FromMilliseconds(kEnforceMemoryPolicyDelayMs));
641 } 624 }
642 625
643 } // namespace discardable_memory 626 } // namespace discardable_memory
OLDNEW
« no previous file with comments | « components/discardable_memory/service/discardable_shared_memory_manager.h ('k') | content/browser/browser_main_loop.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698