From 917f950cd7c69e39e84034f8c50e9b2f522f0426 Mon Sep 17 00:00:00 2001 From: Gaius Date: Wed, 4 Sep 2024 00:13:35 +0800 Subject: [PATCH] feat: when send piece error drop out_stream_tx (#715) Signed-off-by: Gaius --- dragonfly-client/src/grpc/dfdaemon_upload.rs | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/dragonfly-client/src/grpc/dfdaemon_upload.rs b/dragonfly-client/src/grpc/dfdaemon_upload.rs index 709de6c4..2c826ce3 100644 --- a/dragonfly-client/src/grpc/dfdaemon_upload.rs +++ b/dragonfly-client/src/grpc/dfdaemon_upload.rs @@ -671,20 +671,27 @@ impl DfdaemonUpload for DfdaemonUploadServerHandler { // Send the piece metadata to the stream. if piece.is_finished() { - out_stream_tx + match out_stream_tx .send(Ok(SyncPiecesResponse { number: piece.number, offset: piece.offset, length: piece.length, })) .await - .unwrap_or_else(|err| { + { + Ok(_) => { + info!("send piece metadata {}-{}", task_id, piece.number); + } + Err(err) => { error!( - "send finished piece {}-{} to stream: {}", + "send piece metadata {}-{} to stream: {}", task_id, interested_piece_number, err ); - }); - info!("send piece metadata {}-{}", task_id, piece.number); + + drop(out_stream_tx); + return; + } + } // Add the finished piece number to the finished piece numbers. finished_piece_numbers.push(piece.number);