Index: chrome/browser/sync/engine/syncer_thread.cc |
diff --git a/chrome/browser/sync/engine/syncer_thread.cc b/chrome/browser/sync/engine/syncer_thread.cc |
index ed8b023c141ffa615963561055edf2127503a08b..9fc69d4f2ffba583054024b78e8771b856159482 100644 |
--- a/chrome/browser/sync/engine/syncer_thread.cc |
+++ b/chrome/browser/sync/engine/syncer_thread.cc |
@@ -74,8 +74,7 @@ SyncerThread::SyncerThread(sessions::SyncSessionContext* context, |
session_context_(context), |
disable_idle_detection_(false) { |
DCHECK(context); |
- syncer_event_relay_channel_.reset(new SyncerEventChannel(SyncerEvent( |
- SyncerEvent::SHUTDOWN_USE_WITH_CARE))); |
+ syncer_event_relay_channel_.reset(new SyncerEventChannel()); |
if (context->directory_manager()) { |
directory_manager_hookup_.reset(NewEventListenerHookup( |
@@ -90,6 +89,8 @@ SyncerThread::SyncerThread(sessions::SyncSessionContext* context, |
SyncerThread::~SyncerThread() { |
conn_mgr_hookup_.reset(); |
+ syncer_event_relay_channel_->Notify(SyncerEvent( |
+ SyncerEvent::SHUTDOWN_USE_WITH_CARE)); |
syncer_event_relay_channel_.reset(); |
directory_manager_hookup_.reset(); |
syncer_events_.reset(); |
@@ -305,7 +306,7 @@ void SyncerThread::ThreadMainLoop() { |
void SyncerThread::PauseUntilResumedOrQuit() { |
LOG(INFO) << "Syncer thread entering pause."; |
SyncerEvent event(SyncerEvent::PAUSED); |
- relay_channel()->NotifyListeners(event); |
+ relay_channel()->Notify(event); |
// Thread will get stuck here until either a resume is requested |
// or shutdown is started. |
@@ -315,7 +316,7 @@ void SyncerThread::PauseUntilResumedOrQuit() { |
// Notify that we have resumed if we are not shutting down. |
if (!vault_.stop_syncer_thread_) { |
SyncerEvent event(SyncerEvent::RESUMED); |
- relay_channel()->NotifyListeners(event); |
+ relay_channel()->Notify(event); |
} |
LOG(INFO) << "Syncer thread exiting pause."; |
} |
@@ -479,9 +480,9 @@ void SyncerThread::SetUpdatesSource(bool nudged, NudgeSource nudge_source, |
vault_.syncer_->set_updates_source(updates_source); |
} |
-void SyncerThread::HandleSyncerEvent(const SyncerEvent& event) { |
+void SyncerThread::HandleChannelEvent(const SyncerEvent& event) { |
AutoLock lock(lock_); |
- relay_channel()->NotifyListeners(event); |
+ relay_channel()->Notify(event); |
if (SyncerEvent::REQUEST_SYNC_NUDGE != event.what_happened) { |
return; |
} |
@@ -500,9 +501,8 @@ void SyncerThread::HandleDirectoryManagerEvent( |
session_context_->set_account_name(event.dirname); |
vault_.syncer_ = new Syncer(session_context_.get()); |
- syncer_events_.reset(NewEventListenerHookup( |
- session_context_->syncer_event_channel(), this, |
- &SyncerThread::HandleSyncerEvent)); |
+ syncer_events_.reset( |
+ session_context_->syncer_event_channel()->AddObserver(this)); |
vault_field_changed_.Broadcast(); |
} |
} |