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

Unified Diff: base/memory/memory_coordinator_client.h

Issue 2363353002: Document memory coordinator (Closed)
Patch Set: could -> can Created 4 years, 3 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
« no previous file with comments | « no previous file | base/memory/memory_coordinator_client_registry.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/memory/memory_coordinator_client.h
diff --git a/base/memory/memory_coordinator_client.h b/base/memory/memory_coordinator_client.h
index da7104a8d94395decb299f15e86aa79069ce2e32..6008243e5e6c88e9f5375349182341a4c3ad5f8e 100644
--- a/base/memory/memory_coordinator_client.h
+++ b/base/memory/memory_coordinator_client.h
@@ -9,6 +9,14 @@
namespace base {
+// OVERVIEW:
+//
+// MemoryCoordinatorClient is an interface which a component can implement to
+// respond to memory state changes. Unlike MemoryPressureListener, this is a
+// stateful mechanism and clients receive notifications only when memory states
hajimehoshi 2016/09/26 07:08:13 s/receive/that receive/
bashi 2016/09/26 07:54:13 Done.
+// are changed. State transitions are throttled to avoid thrashing; the exact
+// throttling period is platform dependent, but will be at least 5-10 seconds.
+
// MemoryState is an indicator that processes can use to guide their memory
// allocation policies. For example, a process that receives the suspended
// state can use that as as signal to drop memory caches.
@@ -24,12 +32,18 @@ enum class MemoryState {
};
// This is an interface for components which can respond to memory status
-// changes.
+// changes. An initial state is NORMAL. See MemoryCoordinatorClientRegistry for
+// threading guarantees and ownership management.
class BASE_EXPORT MemoryCoordinatorClient {
public:
virtual ~MemoryCoordinatorClient() {}
- // Called when memory state has changed.
+ // Called when memory state has changed. Any transition can occur except for
+ // UNKNOWN. General guidelines are:
+ // * NORMAL: Restore the default settings for memory allocation/usage if
+ // it has changed.
+ // * THROTTLED: Use smaller limits for memory allocations and caches.
+ // * SUSPENDED: Purge memory.
virtual void OnMemoryStateChange(MemoryState state) = 0;
};
« no previous file with comments | « no previous file | base/memory/memory_coordinator_client_registry.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698