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

Unified Diff: chrome/browser/sync/glue/change_processor.h

Issue 6905044: Refactor preference syncing. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Really fix. And rebase Created 9 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
Index: chrome/browser/sync/glue/change_processor.h
diff --git a/chrome/browser/sync/glue/change_processor.h b/chrome/browser/sync/glue/change_processor.h
index 3e8a467c64715eefc597120891b7c5b0f949b995..b6988097271f635ce5c0d833f5f48566d8f226c7 100644
--- a/chrome/browser/sync/glue/change_processor.h
+++ b/chrome/browser/sync/glue/change_processor.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2006-2009 The Chromium Authors. All rights reserved.
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -20,8 +20,7 @@ class UnrecoverableErrorHandler;
// native model. This does not currently distinguish between model data types.
class ChangeProcessor {
public:
- explicit ChangeProcessor(UnrecoverableErrorHandler* error_handler)
- : running_(false), error_handler_(error_handler), share_handle_(NULL) {}
+ explicit ChangeProcessor(UnrecoverableErrorHandler* error_handler);
virtual ~ChangeProcessor();
// Call when the processor should accept changes from either provided model
@@ -45,11 +44,13 @@ class ChangeProcessor {
int change_count) = 0;
// The changes found in ApplyChangesFromSyncModel may be too slow to be
- // performed while holding a [Read/Write]Transaction lock. This function
- // is called once the lock is released and performs any slow I/O operations
- // without unnecessarily slowing the UI. Note that not all datatypes need
- // this, so we provide an empty default version.
- virtual void CommitChangesFromSyncModel() { }
+ // performed while holding a [Read/Write]Transaction lock or may interact
+ // with another thread, which might itself be waiting on the transaction lock,
+ // putting us at risk of deadlock.
+ // This function is called once the transactional lock is released and it is
+ // safe to perform inter-thread or slow I/O operations. Note that not all
+ // datatypes need this, so we provide an empty default version.
+ virtual void CommitChangesFromSyncModel();
protected:
// These methods are invoked by Start() and Stop() to do
@@ -58,8 +59,8 @@ class ChangeProcessor {
virtual void StopImpl() = 0;
bool running() { return running_; }
- UnrecoverableErrorHandler* error_handler() { return error_handler_; }
- sync_api::UserShare* share_handle() { return share_handle_; }
+ UnrecoverableErrorHandler* error_handler();
+ sync_api::UserShare* share_handle();
private:
bool running_; // True if we have been told it is safe to process changes.
« no previous file with comments | « chrome/browser/sync/glue/bookmark_data_type_controller.cc ('k') | chrome/browser/sync/glue/change_processor.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698