Skip to content

Commit 50dd8e2

Browse files
authored
fix: reap completed response send tasks (#1026)
1 parent 1519707 commit 50dd8e2

1 file changed

Lines changed: 11 additions & 0 deletions

File tree

crates/rmcp/src/service.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1230,6 +1230,7 @@ where
12301230
PeerMessage(RxJsonRpcMessage<R>),
12311231
ToSink(TxJsonRpcMessage<R>),
12321232
SendTaskResult(SendTaskResult),
1233+
ResponseSendTaskResult(Result<(), tokio::task::JoinError>),
12331234
}
12341235

12351236
let quit_reason = loop {
@@ -1275,6 +1276,11 @@ where
12751276
}
12761277
}
12771278
}
1279+
result = response_send_tasks.join_next(), if !response_send_tasks.is_empty() => {
1280+
Event::ResponseSendTaskResult(
1281+
result.expect("non-empty response send task set")
1282+
)
1283+
}
12781284
_ = serve_loop_ct.cancelled() => {
12791285
tracing::info!("task cancelled");
12801286
break QuitReason::Cancelled
@@ -1313,6 +1319,11 @@ where
13131319
}
13141320
}
13151321
}
1322+
Event::ResponseSendTaskResult(result) => {
1323+
if let Err(error) = result {
1324+
tracing::error!(%error, "response send task failed");
1325+
}
1326+
}
13161327
// response and error
13171328
Event::ToSink(m) => {
13181329
if let Some(id) = match &m {

0 commit comments

Comments
 (0)