Send buffer operations in the order they occur

Antonio Scandurra , Nathan Sobo , and Max Brunsfeld created

Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>

Change summary

zed/src/worktree.rs | 27 +++++++++++++--------------
1 file changed, 13 insertions(+), 14 deletions(-)

Detailed changes

zed/src/worktree.rs 🔗

@@ -1748,20 +1748,19 @@ impl File {
                 Worktree::Local(worktree) => worktree.rpc.clone(),
                 Worktree::Remote(worktree) => Some((worktree.rpc.clone(), worktree.remote_id)),
             } {
-                cx.background()
-                    .spawn(async move {
-                        if let Err(error) = rpc
-                            .send(proto::UpdateBuffer {
-                                worktree_id: remote_id,
-                                buffer_id,
-                                operations: Some(operation).iter().map(Into::into).collect(),
-                            })
-                            .await
-                        {
-                            log::error!("error sending buffer operation: {}", error);
-                        }
-                    })
-                    .detach();
+                cx.spawn(|_, _| async move {
+                    if let Err(error) = rpc
+                        .send(proto::UpdateBuffer {
+                            worktree_id: remote_id,
+                            buffer_id,
+                            operations: Some(operation).iter().map(Into::into).collect(),
+                        })
+                        .await
+                    {
+                        log::error!("error sending buffer operation: {}", error);
+                    }
+                })
+                .detach();
             }
         });
     }