diff options
author | zork@chromium.org <zork@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-11 02:08:19 +0000 |
---|---|---|
committer | zork@chromium.org <zork@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-11 02:08:19 +0000 |
commit | c2821c1efc8afbf0ebf4fe64310e2de4899632a3 (patch) | |
tree | 447d9a70980c52c1c6ffbb258ee6a38895ff80ed /chrome/browser/sync/engine/all_status.cc | |
parent | e0da37dfb035ba050fbc0d7f83a205bab9493e22 (diff) | |
download | chromium_src-c2821c1efc8afbf0ebf4fe64310e2de4899632a3.zip chromium_src-c2821c1efc8afbf0ebf4fe64310e2de4899632a3.tar.gz chromium_src-c2821c1efc8afbf0ebf4fe64310e2de4899632a3.tar.bz2 |
Replace changes_channel with an observer list.
BUG=none
TEST=Run unit tests
Review URL: http://codereview.chromium.org/2075012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49490 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/sync/engine/all_status.cc')
-rw-r--r-- | chrome/browser/sync/engine/all_status.cc | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/chrome/browser/sync/engine/all_status.cc b/chrome/browser/sync/engine/all_status.cc index 64ea9a7..39509f4 100644 --- a/chrome/browser/sync/engine/all_status.cc +++ b/chrome/browser/sync/engine/all_status.cc @@ -50,6 +50,7 @@ AllStatus::AllStatus() : status_(init_status), } AllStatus::~AllStatus() { + syncer_thread_hookup_.reset(); delete channel_; } @@ -60,8 +61,7 @@ void AllStatus::WatchConnectionManager(ServerConnectionManager* conn_mgr) { void AllStatus::WatchSyncerThread(SyncerThread* syncer_thread) { syncer_thread_hookup_.reset( - NewEventListenerHookup(syncer_thread->relay_channel(), this, - &AllStatus::HandleSyncerEvent)); + syncer_thread->relay_channel()->AddObserver(this)); } AllStatus::Status AllStatus::CreateBlankStatus() const { @@ -187,7 +187,7 @@ void AllStatus::HandleAuthWatcherEvent(const AuthWatcherEvent& auth_event) { } } -void AllStatus::HandleSyncerEvent(const SyncerEvent& event) { +void AllStatus::HandleChannelEvent(const SyncerEvent& event) { ScopedStatusLockWithNotify lock(this); switch (event.what_happened) { case SyncerEvent::COMMITS_SUCCEEDED: @@ -200,6 +200,7 @@ void AllStatus::HandleSyncerEvent(const SyncerEvent& event) { // We're safe to use this value here because we don't call into the syncer // or block on any processes. lock.set_notify_plan(DONT_NOTIFY); + syncer_thread_hookup_.reset(); break; case SyncerEvent::OVER_QUOTA: LOG(WARNING) << "User has gone over quota."; |