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

Unified Diff: base/metrics/persistent_histogram_allocator.h

Issue 2888563005: Added support for 'spare' file that can be used at startup. (Closed)
Patch Set: rebased Created 3 years, 7 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/metrics/persistent_histogram_allocator.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/metrics/persistent_histogram_allocator.h
diff --git a/base/metrics/persistent_histogram_allocator.h b/base/metrics/persistent_histogram_allocator.h
index 851d7ef5a4eabdaef66fbc6a2e96e10f8216b136..8a8d4cb32a9b829e5cc339f09991a9008f70dd1a 100644
--- a/base/metrics/persistent_histogram_allocator.h
+++ b/base/metrics/persistent_histogram_allocator.h
@@ -404,10 +404,12 @@ class BASE_EXPORT GlobalHistogramAllocator
// Creates a new file at |active_path|. If it already exists, it will first be
// moved to |base_path|. In all cases, any old file at |base_path| will be
- // removed. The file will be created using the given size, id, and name.
- // Returns whether the global allocator was set.
+ // removed. If |spare_path| is non-empty and exists, that will be renamed and
+ // used as the active file. Otherwise, the file will be created using the
+ // given size, id, and name. Returns whether the global allocator was set.
static bool CreateWithActiveFile(const FilePath& base_path,
const FilePath& active_path,
+ const FilePath& spare_path,
size_t size,
uint64_t id,
StringPiece name);
@@ -421,14 +423,27 @@ class BASE_EXPORT GlobalHistogramAllocator
uint64_t id,
StringPiece name);
- // Constructs a pair of names in |dir| based on name that can be used for a
+ // Constructs a set of names in |dir| based on name that can be used for a
// base + active persistent memory mapped location for CreateWithActiveFile().
- // |name| will be used as the basename of the file inside |dir|.
- // |out_base_path| or |out_active_path| may be null if not needed.
+ // The spare path is a file that can be pre-created and moved to be active
+ // without any startup penalty that comes from constructing the file. |name|
+ // will be used as the basename of the file inside |dir|. |out_base_path|,
+ // |out_active_path|, or |out_spare_path| may be null if not needed.
static void ConstructFilePaths(const FilePath& dir,
StringPiece name,
FilePath* out_base_path,
- FilePath* out_active_path);
+ FilePath* out_active_path,
+ FilePath* out_spare_path);
+
+ // Create a "spare" file that can later be made the "active" file. This
+ // should be done on a background thread if possible.
+ static bool CreateSpareFile(const FilePath& spare_path, size_t size);
+
+ // Same as above but uses standard names. |name| is the name of the allocator
+ // and is also used to create the correct filename.
+ static bool CreateSpareFileInDir(const FilePath& dir_path,
+ size_t size,
+ StringPiece name);
#endif
// Create a global allocator using a block of shared memory accessed
« no previous file with comments | « no previous file | base/metrics/persistent_histogram_allocator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698