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

Side by Side Diff: base/memory/discardable_shared_memory.cc

Issue 1374213002: [tracing] Display the locked size of discardable memory segment. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Storing locked state in spans. 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 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 "base/memory/discardable_shared_memory.h" 5 #include "base/memory/discardable_shared_memory.h"
6 6
7 #if defined(OS_POSIX) 7 #if defined(OS_POSIX)
8 #include <unistd.h> 8 #include <unistd.h>
9 #endif 9 #endif
10 10
(...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after
333 bool DiscardableSharedMemory::IsMemoryResident() const { 333 bool DiscardableSharedMemory::IsMemoryResident() const {
334 DCHECK(shared_memory_.memory()); 334 DCHECK(shared_memory_.memory());
335 335
336 SharedState result(subtle::NoBarrier_Load( 336 SharedState result(subtle::NoBarrier_Load(
337 &SharedStateFromSharedMemory(shared_memory_)->value.i)); 337 &SharedStateFromSharedMemory(shared_memory_)->value.i));
338 338
339 return result.GetLockState() == SharedState::LOCKED || 339 return result.GetLockState() == SharedState::LOCKED ||
340 !result.GetTimestamp().is_null(); 340 !result.GetTimestamp().is_null();
341 } 341 }
342 342
343 bool DiscardableSharedMemory::IsMemoryLocked() const {
344 if (!shared_memory_.memory())
reveman 2015/09/29 22:58:31 nit: Can this be a DCHECK as IsMemoryResident?
ssid 2015/09/30 19:27:21 Done.
345 return false;
346
347 SharedState result(subtle::NoBarrier_Load(
348 &SharedStateFromSharedMemory(shared_memory_)->value.i));
349
350 return result.GetLockState() == SharedState::LOCKED;
351 }
352
343 void DiscardableSharedMemory::Close() { 353 void DiscardableSharedMemory::Close() {
344 shared_memory_.Close(); 354 shared_memory_.Close();
345 } 355 }
346 356
347 #if defined(DISCARDABLE_SHARED_MEMORY_SHRINKING) 357 #if defined(DISCARDABLE_SHARED_MEMORY_SHRINKING)
348 void DiscardableSharedMemory::Shrink() { 358 void DiscardableSharedMemory::Shrink() {
349 #if defined(OS_POSIX) 359 #if defined(OS_POSIX)
350 SharedMemoryHandle handle = shared_memory_.handle(); 360 SharedMemoryHandle handle = shared_memory_.handle();
351 if (!SharedMemory::IsHandleValid(handle)) 361 if (!SharedMemory::IsHandleValid(handle))
352 return; 362 return;
353 363
354 // Truncate shared memory to size of SharedState. 364 // Truncate shared memory to size of SharedState.
355 if (HANDLE_EINTR(ftruncate(SharedMemory::GetFdFromSharedMemoryHandle(handle), 365 if (HANDLE_EINTR(ftruncate(SharedMemory::GetFdFromSharedMemoryHandle(handle),
356 AlignToPageSize(sizeof(SharedState)))) != 0) { 366 AlignToPageSize(sizeof(SharedState)))) != 0) {
357 DPLOG(ERROR) << "ftruncate() failed"; 367 DPLOG(ERROR) << "ftruncate() failed";
358 return; 368 return;
359 } 369 }
360 mapped_size_ = 0; 370 mapped_size_ = 0;
361 #else 371 #else
362 NOTIMPLEMENTED(); 372 NOTIMPLEMENTED();
363 #endif 373 #endif
364 } 374 }
365 #endif 375 #endif
366 376
367 Time DiscardableSharedMemory::Now() const { 377 Time DiscardableSharedMemory::Now() const {
368 return Time::Now(); 378 return Time::Now();
369 } 379 }
370 380
371 } // namespace base 381 } // namespace base
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698