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); |