| Index: base/memory/discardable_shared_memory.h
|
| diff --git a/base/memory/discardable_shared_memory.h b/base/memory/discardable_shared_memory.h
|
| index e3b437c89e7e4bb743db4dc1c7d82ed411a1cb40..892d556471ed85afa2d50f30553a097461624eca 100644
|
| --- a/base/memory/discardable_shared_memory.h
|
| +++ b/base/memory/discardable_shared_memory.h
|
| @@ -15,6 +15,12 @@
|
| #include <set>
|
| #endif
|
|
|
| +// Define DISCARDABLE_SHARED_MEMORY_SHRINKING if platform supports shrinking
|
| +// of discardable shared memory segments.
|
| +#if defined(OS_POSIX) && !defined(OS_ANDROID)
|
| +#define DISCARDABLE_SHARED_MEMORY_SHRINKING
|
| +#endif
|
| +
|
| namespace base {
|
|
|
| // Platform abstraction for discardable shared memory.
|
| @@ -93,12 +99,6 @@ class BASE_EXPORT DiscardableSharedMemory {
|
| // each call.
|
| bool Purge(Time current_time);
|
|
|
| - // Purge and release as much memory as possible to the OS.
|
| - // Note: The amount of memory that can be released to the OS is platform
|
| - // specific. Best case, all but one page is released. Worst case, nothing
|
| - // is released.
|
| - bool PurgeAndTruncate(Time current_time);
|
| -
|
| // Returns true if memory is still resident.
|
| bool IsMemoryResident() const;
|
|
|
| @@ -116,6 +116,12 @@ class BASE_EXPORT DiscardableSharedMemory {
|
| return shared_memory_.ShareToProcess(process_handle, new_handle);
|
| }
|
|
|
| +#if defined(DISCARDABLE_SHARED_MEMORY_SHRINKING)
|
| + // Release as much memory as possible to the OS. The change in size will
|
| + // be reflected by the return value of mapped_size().
|
| + void Shrink();
|
| +#endif
|
| +
|
| private:
|
| // Virtual for tests.
|
| virtual Time Now() const;
|
|
|