Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(72)

Side by Side Diff: sync/engine/sync_scheduler.cc

Issue 10537032: [Sync] Fix sync scheduler/session logic determining successful commands. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove comment Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | sync/engine/sync_scheduler_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "sync/engine/sync_scheduler.h" 5 #include "sync/engine/sync_scheduler.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cstring> 8 #include <cstring>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 863 matching lines...) Expand 10 before | Expand all | Expand 10 after
874 ScheduleNextSync(job); 874 ScheduleNextSync(job);
875 } 875 }
876 876
877 void SyncScheduler::ScheduleNextSync(const SyncSessionJob& old_job) { 877 void SyncScheduler::ScheduleNextSync(const SyncSessionJob& old_job) {
878 DCHECK_EQ(MessageLoop::current(), sync_loop_); 878 DCHECK_EQ(MessageLoop::current(), sync_loop_);
879 DCHECK(!old_job.session->HasMoreToSync()); 879 DCHECK(!old_job.session->HasMoreToSync());
880 880
881 AdjustPolling(&old_job); 881 AdjustPolling(&old_job);
882 882
883 if (old_job.session->Succeeded()) { 883 if (old_job.session->Succeeded()) {
884 // Success implies backoff relief. Note that if this was a 884 // Only reset backoff if we actually reached the server.
885 // "one-off" job (i.e. purpose == 885 if (old_job.session->SuccessfullyReachedServer())
886 // SyncSessionJob::{CLEAR_USER_DATA,CLEANUP_DISABLED_TYPES}), if 886 wait_interval_.reset();
887 // there was work to do before it ran this wont have changed, as
888 // jobs like this don't run a full sync cycle. So we don't need
889 // special code here.
890 wait_interval_.reset();
891 SDVLOG(2) << "Job succeeded so not scheduling more jobs"; 887 SDVLOG(2) << "Job succeeded so not scheduling more jobs";
892 return; 888 return;
893 } 889 }
894 890
895 if (old_job.purpose == SyncSessionJob::POLL) { 891 if (old_job.purpose == SyncSessionJob::POLL) {
896 return; // We don't retry POLL jobs. 892 return; // We don't retry POLL jobs.
897 } 893 }
898 894
899 // TODO(rlarocque): There's no reason why we should blindly backoff and retry 895 // TODO(rlarocque): There's no reason why we should blindly backoff and retry
900 // if we don't succeed. Some types of errors are not likely to disappear on 896 // if we don't succeed. Some types of errors are not likely to disappear on
(...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after
1195 1191
1196 #undef SDVLOG_LOC 1192 #undef SDVLOG_LOC
1197 1193
1198 #undef SDVLOG 1194 #undef SDVLOG
1199 1195
1200 #undef SLOG 1196 #undef SLOG
1201 1197
1202 #undef ENUM_CASE 1198 #undef ENUM_CASE
1203 1199
1204 } // browser_sync 1200 } // browser_sync
OLDNEW
« no previous file with comments | « no previous file | sync/engine/sync_scheduler_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698