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

Side by Side Diff: chrome/browser/sync/engine/syncer_thread.h

Issue 6250088: Cleanup everything but net/ for our first clang plugins. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 10 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
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 // A class to run the syncer on a thread. 5 // A class to run the syncer on a thread.
6 // This is the default implementation of SyncerThread whose Stop implementation 6 // This is the default implementation of SyncerThread whose Stop implementation
7 // does not support a timeout, but is greatly simplified. 7 // does not support a timeout, but is greatly simplified.
8 #ifndef CHROME_BROWSER_SYNC_ENGINE_SYNCER_THREAD_H_ 8 #ifndef CHROME_BROWSER_SYNC_ENGINE_SYNCER_THREAD_H_
9 #define CHROME_BROWSER_SYNC_ENGINE_SYNCER_THREAD_H_ 9 #define CHROME_BROWSER_SYNC_ENGINE_SYNCER_THREAD_H_
10 #pragma once 10 #pragma once
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
174 // which opens a window for Stop to get called before the task actually 174 // which opens a window for Stop to get called before the task actually
175 // makes it. To prevent this, we block Start() until we're sure it's ok. 175 // makes it. To prevent this, we block Start() until we're sure it's ok.
176 base::WaitableEvent thread_main_started_; 176 base::WaitableEvent thread_main_started_;
177 177
178 // Handle of the running thread. 178 // Handle of the running thread.
179 base::Thread thread_; 179 base::Thread thread_;
180 180
181 // Fields that are modified / accessed by multiple threads go in this struct 181 // Fields that are modified / accessed by multiple threads go in this struct
182 // for clarity and explicitness. 182 // for clarity and explicitness.
183 struct ProtectedFields { 183 struct ProtectedFields {
184 ProtectedFields();
185 ~ProtectedFields();
186
184 // False when we want to stop the thread. 187 // False when we want to stop the thread.
185 bool stop_syncer_thread_; 188 bool stop_syncer_thread_;
186 189
187 // True when a pause was requested. 190 // True when a pause was requested.
188 bool pause_requested_; 191 bool pause_requested_;
189 192
190 // True when the thread is paused. 193 // True when the thread is paused.
191 bool paused_; 194 bool paused_;
192 195
193 Syncer* syncer_; 196 Syncer* syncer_;
(...skipping 16 matching lines...) Expand all
210 213
211 // null iff there is no pending nudge. 214 // null iff there is no pending nudge.
212 base::TimeTicks pending_nudge_time_; 215 base::TimeTicks pending_nudge_time_;
213 216
214 // The wait interval for to the current iteration of our main loop. This is 217 // The wait interval for to the current iteration of our main loop. This is
215 // only written to by the syncer thread, and since the only reader from a 218 // only written to by the syncer thread, and since the only reader from a
216 // different thread (NudgeSync) is called at totally random times, we don't 219 // different thread (NudgeSync) is called at totally random times, we don't
217 // really need to access mutually exclusively as the data races that exist 220 // really need to access mutually exclusively as the data races that exist
218 // are intrinsic, but do so anyway and avoid using 'volatile'. 221 // are intrinsic, but do so anyway and avoid using 'volatile'.
219 WaitInterval current_wait_interval_; 222 WaitInterval current_wait_interval_;
220
221 ProtectedFields()
222 : stop_syncer_thread_(false),
223 pause_requested_(false),
224 paused_(false),
225 syncer_(NULL),
226 connected_(false),
227 pending_nudge_source_(kUnknown) {}
228 } vault_; 223 } vault_;
229 224
230 // Gets signaled whenever a thread outside of the syncer thread changes a 225 // Gets signaled whenever a thread outside of the syncer thread changes a
231 // protected field in the vault_. 226 // protected field in the vault_.
232 base::ConditionVariable vault_field_changed_; 227 base::ConditionVariable vault_field_changed_;
233 228
234 // Used to lock everything in |vault_|. 229 // Used to lock everything in |vault_|.
235 base::Lock lock_; 230 base::Lock lock_;
236 231
237 private: 232 private:
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
359 354
360 // Useful for unit tests 355 // Useful for unit tests
361 bool disable_idle_detection_; 356 bool disable_idle_detection_;
362 357
363 DISALLOW_COPY_AND_ASSIGN(SyncerThread); 358 DISALLOW_COPY_AND_ASSIGN(SyncerThread);
364 }; 359 };
365 360
366 } // namespace browser_sync 361 } // namespace browser_sync
367 362
368 #endif // CHROME_BROWSER_SYNC_ENGINE_SYNCER_THREAD_H_ 363 #endif // CHROME_BROWSER_SYNC_ENGINE_SYNCER_THREAD_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698