Index: chrome/browser/sync/engine/syncer.cc |
diff --git a/chrome/browser/sync/engine/syncer.cc b/chrome/browser/sync/engine/syncer.cc |
index 24c471bf13687641b23ae265bcf5959125d9cf23..2956a046c457af86b1840eb1e726c7f291ba333e 100644 |
--- a/chrome/browser/sync/engine/syncer.cc |
+++ b/chrome/browser/sync/engine/syncer.cc |
@@ -55,24 +55,29 @@ using sessions::ConflictProgress; |
Syncer::Syncer(sessions::SyncSessionContext* context) |
: early_exit_requested_(false), |
max_commit_batch_size_(kDefaultMaxCommitBatchSize), |
- syncer_event_channel_(new SyncerEventChannel(SyncerEvent( |
- SyncerEvent::SHUTDOWN_USE_WITH_CARE))), |
+ syncer_event_channel_(new SyncerEventChannel()), |
resolver_scoper_(context, &resolver_), |
event_channel_scoper_(context, syncer_event_channel_.get()), |
context_(context), |
updates_source_(sync_pb::GetUpdatesCallerInfo::UNKNOWN), |
pre_conflict_resolution_closure_(NULL) { |
- shutdown_channel_.reset(new ShutdownChannel(this)); |
+ shutdown_channel_.reset(new ShutdownChannel()); |
ScopedDirLookup dir(context->directory_manager(), context->account_name()); |
// The directory must be good here. |
CHECK(dir.good()); |
} |
+Syncer::~Syncer() { |
+ syncer_event_channel_->Notify( |
+ SyncerEvent(SyncerEvent::SHUTDOWN_USE_WITH_CARE)); |
+ shutdown_channel_->Notify(SyncerShutdownEvent(this)); |
+} |
+ |
void Syncer::RequestNudge(int milliseconds) { |
SyncerEvent event(SyncerEvent::REQUEST_SYNC_NUDGE); |
event.nudge_delay_milliseconds = milliseconds; |
- syncer_event_channel_->NotifyListeners(event); |
+ syncer_event_channel_->Notify(event); |
} |
bool Syncer::SyncShare(sessions::SyncSession::Delegate* delegate) { |