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; |