aboutsummaryrefslogtreecommitdiffstats
path: root/src/api/document.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/api/document.rs')
-rw-r--r--src/api/document.rs7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/api/document.rs b/src/api/document.rs
index 20bbc7b..08fd21f 100644
--- a/src/api/document.rs
+++ b/src/api/document.rs
@@ -50,12 +50,11 @@ pub(crate) async fn get_document(State(state): State<AppState>) -> Response {
// Both steps take time proportional to the document: off the async threads, and
// the lock only for the copy.
let saved = tokio::task::spawn_blocking(move || {
- let (mut copy, epoch) = {
+ let (mut copy, epoch, heads) = {
let replica = doc.blocking_read();
- (replica.doc.clone(), replica.epoch)
+ (replica.doc.clone(), replica.epoch, replica.heads().to_vec())
};
- let heads = copy.get_heads();
- (copy.save(), heads, epoch)
+ (crate::document::save(&mut copy), heads, epoch)
})
.await;
let (bytes, heads, epoch) = match saved {