| Index: trunk/src/sync/engine/syncer.h
|
| ===================================================================
|
| --- trunk/src/sync/engine/syncer.h (revision 222204)
|
| +++ trunk/src/sync/engine/syncer.h (working copy)
|
| @@ -21,8 +21,6 @@
|
|
|
| namespace syncer {
|
|
|
| -class CancelationSignal;
|
| -
|
| // A Syncer provides a control interface for driving the individual steps
|
| // of the sync cycle. Each cycle (hopefully) moves the client into closer
|
| // synchronization with the server. The individual steps are modeled
|
| @@ -37,10 +35,13 @@
|
| public:
|
| typedef std::vector<int64> UnsyncedMetaHandles;
|
|
|
| - Syncer(CancelationSignal* cancelation_signal);
|
| + Syncer();
|
| virtual ~Syncer();
|
|
|
| + // Called by other threads to tell the syncer to stop what it's doing
|
| + // and return early from SyncShare, if possible.
|
| bool ExitRequested();
|
| + void RequestEarlyExit();
|
|
|
| // Fetches and applies updates, resolves conflicts and commits local changes
|
| // for |request_types| as necessary until client and server states are in
|
| @@ -78,7 +79,8 @@
|
| sessions::SyncSession* session,
|
| sync_pb::GetUpdatesCallerInfo::GetUpdatesSource source);
|
|
|
| - syncer::CancelationSignal* const cancelation_signal_;
|
| + bool early_exit_requested_;
|
| + base::Lock early_exit_requested_lock_;
|
|
|
| friend class SyncerTest;
|
| FRIEND_TEST_ALL_PREFIXES(SyncerTest, NameClashWithResolver);
|
|
|