aboutsummaryrefslogtreecommitdiffstats
path: root/src/document
diff options
context:
space:
mode:
Diffstat (limited to 'src/document')
-rw-r--r--src/document/sync.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/document/sync.rs b/src/document/sync.rs
index 7695b82..c703300 100644
--- a/src/document/sync.rs
+++ b/src/document/sync.rs
@@ -870,6 +870,16 @@ impl SyncSession {
self.reply_backoff.reset();
}
+ /// The peer answered our message with a delta offer (`SyncBody::Delta`): the wait
+ /// ends, and to Automerge no message of ours is in flight any more, as an answer of
+ /// its own would have told it. Else, with our heads unchanged (an offer we don't
+ /// fetch, or a download that fails), it would say nothing again, and the peer would
+ /// never hear what we have to offer afresh.
+ pub(crate) fn answered_by_offer(&mut self) {
+ self.reply_settled();
+ self.state.in_flight = false;
+ }
+
/// If the answer is overdue: forgets that the unanswered changes were sent and that
/// a message is in flight, so the next sync pass sends them again. Returns how many
/// changes that concerns.