summaryrefslogtreecommitdiffstats
path: root/chrome/browser/sync
diff options
context:
space:
mode:
authorzea@chromium.org <zea@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-01-25 02:57:10 +0000
committerzea@chromium.org <zea@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-01-25 02:57:10 +0000
commit29f97e640739f7cb62c3ae742e689dae7cbe081a (patch)
tree9b66ee983689f6a2a46e8c23555b4f1f6b36993d /chrome/browser/sync
parent9adc9dce6687888b102210e06ca24db4d7259053 (diff)
downloadchromium_src-29f97e640739f7cb62c3ae742e689dae7cbe081a.zip
chromium_src-29f97e640739f7cb62c3ae742e689dae7cbe081a.tar.gz
chromium_src-29f97e640739f7cb62c3ae742e689dae7cbe081a.tar.bz2
[SYNC] Speculative fix for autofill change processor destroying on the wrong thread. The data type manager should now tell any datatype controller that is not already stopping or not running to stop. Namely, this covers the MODEL_STARTING and ASSOCIATING cases, which weren't being covered before. Tests that can reproduce these race conditions still needed.
BUG=61804 TEST=unit,sync_integration,self Review URL: http://codereview.chromium.org/6273011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72458 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/sync')
-rw-r--r--chrome/browser/sync/glue/data_type_manager_impl.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/chrome/browser/sync/glue/data_type_manager_impl.cc b/chrome/browser/sync/glue/data_type_manager_impl.cc
index 86b142d..9b0efdf 100644
--- a/chrome/browser/sync/glue/data_type_manager_impl.cc
+++ b/chrome/browser/sync/glue/data_type_manager_impl.cc
@@ -358,7 +358,8 @@ void DataTypeManagerImpl::FinishStop() {
for (DataTypeController::TypeMap::const_iterator it = controllers_.begin();
it != controllers_.end(); ++it) {
DataTypeController* dtc = (*it).second;
- if (dtc->state() == DataTypeController::RUNNING) {
+ if (dtc->state() != DataTypeController::NOT_RUNNING &&
+ dtc->state() != DataTypeController::STOPPING) {
dtc->Stop();
VLOG(1) << "Stopped " << dtc->name();
}