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