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

Unified Diff: components/sync/model_impl/model_type_store_backend.h

Issue 2732333003: [Sync] ModelTypeStore factory shouldn't require valid PSS to function correctly (Closed)
Patch Set: Address comments Created 3 years, 9 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 | « components/sync/model/model_type_store.h ('k') | components/sync/model_impl/model_type_store_backend.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/sync/model_impl/model_type_store_backend.h
diff --git a/components/sync/model_impl/model_type_store_backend.h b/components/sync/model_impl/model_type_store_backend.h
index b185977b33a8d8353d15d631978af5b944d5a382..b17b67203575f3cfb22d76b2e9e2c8453885390d 100644
--- a/components/sync/model_impl/model_type_store_backend.h
+++ b/components/sync/model_impl/model_type_store_backend.h
@@ -9,9 +9,8 @@
#include <string>
#include <unordered_map>
-#include "base/lazy_instance.h"
#include "base/macros.h"
-#include "base/threading/thread_collision_warner.h"
+#include "base/sequence_checker.h"
#include "components/sync/model/model_type_store.h"
#include "third_party/leveldatabase/src/include/leveldb/status.h"
@@ -55,8 +54,6 @@ enum StoreInitResultForHistogram {
class ModelTypeStoreBackend
: public base::RefCountedThreadSafe<ModelTypeStoreBackend> {
public:
- using BackendMap = std::unordered_map<std::string, ModelTypeStoreBackend*>;
-
// Helper function to create in memory environment for leveldb.
static std::unique_ptr<leveldb::Env> CreateInMemoryEnv();
@@ -134,6 +131,10 @@ class ModelTypeStoreBackend
static void RecordStoreInitResultHistogram(
StoreInitResultForHistogram result);
+ // Helper function for unittests to check if backend already exists for a
+ // given path.
+ static bool BackendExistsForTest(const std::string& path);
+
// In some scenarios ModelTypeStoreBackend holds ownership of env. Typical
// example is when test creates in memory environment with CreateInMemoryEnv
// and wants it to be destroyed along with backend. This is achieved by
@@ -147,14 +148,9 @@ class ModelTypeStoreBackend
std::string path_;
- // backend_map_ holds raw pointer of backend, and when stores ask for backend,
- // GetOrCreateBackend will return scoped_refptr of backend. backend_map_
- // doesn't take reference to backend, therefore doesn't block backend
- // destruction.
- static base::LazyInstance<BackendMap>::DestructorAtExit backend_map_;
-
- // Macro wrapped mutex to guard against concurrent calls in debug builds.
- DFAKE_MUTEX(push_pop_);
+ // Ensures that operations with backend are performed seqentially, not
+ // concurrently.
+ base::SequenceChecker sequence_checker_;
DISALLOW_COPY_AND_ASSIGN(ModelTypeStoreBackend);
};
« no previous file with comments | « components/sync/model/model_type_store.h ('k') | components/sync/model_impl/model_type_store_backend.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698