diff options
author | haitaol@chromium.org <haitaol@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-07-31 01:31:55 +0000 |
---|---|---|
committer | haitaol@chromium.org <haitaol@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-07-31 01:31:55 +0000 |
commit | 93dcabfb6d0d60e2c4a2bed38cd4803303c9a377 (patch) | |
tree | 240e9b1419d01ed7cb3b4f0486d18e760c231381 /sync/engine/sync_scheduler_unittest.cc | |
parent | 496552ef030bd2eec4c072c6b3d7ba84f38c80d4 (diff) | |
download | chromium_src-93dcabfb6d0d60e2c4a2bed38cd4803303c9a377.zip chromium_src-93dcabfb6d0d60e2c4a2bed38cd4803303c9a377.tar.gz chromium_src-93dcabfb6d0d60e2c4a2bed38cd4803303c9a377.tar.bz2 |
Lock-free shutdown of profile sync service. Changes include:
* Disconnect non-frontend processor/associator to stop accessing directory
so that sync backend can be shut down without waiting.
* Change non-frontend controller so that creation/destruction of
processor/associator doesn't depend on valid controller. So
scoped wait on stopping controller can be removed.
* Move sync thread to PSS. It's created when starting first backend and
destroyed on last browser thread.
BUG=19757
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=210333
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=210955
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=213642
Review URL: https://chromiumcodereview.appspot.com/16770005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@214500 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'sync/engine/sync_scheduler_unittest.cc')
-rw-r--r-- | sync/engine/sync_scheduler_unittest.cc | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/sync/engine/sync_scheduler_unittest.cc b/sync/engine/sync_scheduler_unittest.cc index 3fb2042..a09079a 100644 --- a/sync/engine/sync_scheduler_unittest.cc +++ b/sync/engine/sync_scheduler_unittest.cc @@ -17,7 +17,7 @@ #include "sync/test/engine/fake_model_worker.h" #include "sync/test/engine/mock_connection_manager.h" #include "sync/test/engine/test_directory_setter_upper.h" -#include "sync/test/fake_extensions_activity_monitor.h" +#include "sync/util/extensions_activity.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" @@ -126,6 +126,7 @@ class SyncSchedulerTest : public testing::Test { dir_maker_.SetUp(); syncer_ = new MockSyncer(); delay_ = NULL; + extensions_activity_ = new ExtensionsActivity(); routing_info_[BOOKMARKS] = GROUP_UI; routing_info_[AUTOFILL] = GROUP_DB; @@ -147,7 +148,7 @@ class SyncSchedulerTest : public testing::Test { connection_->SetServerReachable(); context_.reset(new SyncSessionContext( connection_.get(), directory(), workers, - &extensions_activity_monitor_, + extensions_activity_.get(), std::vector<SyncEngineEventListener*>(), NULL, NULL, true, // enable keystore encryption false, // force enable pre-commit GU avoidance @@ -202,8 +203,10 @@ class SyncSchedulerTest : public testing::Test { // This stops the scheduler synchronously. void StopSyncScheduler() { - scheduler()->RequestStop(base::Bind(&SyncSchedulerTest::DoQuitLoopNow, - weak_ptr_factory_.GetWeakPtr())); + base::MessageLoop::current()->PostTask( + FROM_HERE, + base::Bind(&SyncSchedulerTest::DoQuitLoopNow, + weak_ptr_factory_.GetWeakPtr())); RunLoop(); } @@ -233,8 +236,8 @@ class SyncSchedulerTest : public testing::Test { return dir_maker_.directory(); } + base::MessageLoop loop_; base::WeakPtrFactory<SyncSchedulerTest> weak_ptr_factory_; - base::MessageLoop message_loop_; TestDirectorySetterUpper dir_maker_; scoped_ptr<MockConnectionManager> connection_; scoped_ptr<SyncSessionContext> context_; @@ -242,7 +245,7 @@ class SyncSchedulerTest : public testing::Test { MockSyncer* syncer_; MockDelayProvider* delay_; std::vector<scoped_refptr<FakeModelWorker> > workers_; - FakeExtensionsActivityMonitor extensions_activity_monitor_; + scoped_refptr<ExtensionsActivity> extensions_activity_; ModelSafeRoutingInfo routing_info_; }; |