@@ -127,11 +127,13 @@ impl Transport {
127127 async fn send_payload_to_server(
128128 &self,
129129 server_stdin: &mut Box<dyn AsyncWrite + Unpin + Send>,
130− req: Request,
130+ mut req: Request,
131131 ) -> Result<()> {
132− let json = serde_json::to_string(&Payload::Request(req.clone()))?;
133− if let Some(back) = req.back_ch {
134− self.pending_requests.lock().await.insert(req.seq, back);
132+ let back_ch = req.back_ch.take();
133+ let seq = req.seq;
134+ let json = serde_json::to_string(&Payload::Request(req))?;
135+ if let Some(back) = back_ch {
136+ self.pending_requests.lock().await.insert(seq, back);
135137 }
136138 self.send_string_to_server(server_stdin, json).await
137139 }