fix: reap completed response send tasks (#1026)
This commit is contained in:
parent
151970775c
commit
50dd8e2040
1 changed files with 11 additions and 0 deletions
|
|
@ -1230,6 +1230,7 @@ where
|
|||
PeerMessage(RxJsonRpcMessage<R>),
|
||||
ToSink(TxJsonRpcMessage<R>),
|
||||
SendTaskResult(SendTaskResult),
|
||||
ResponseSendTaskResult(Result<(), tokio::task::JoinError>),
|
||||
}
|
||||
|
||||
let quit_reason = loop {
|
||||
|
|
@ -1275,6 +1276,11 @@ where
|
|||
}
|
||||
}
|
||||
}
|
||||
result = response_send_tasks.join_next(), if !response_send_tasks.is_empty() => {
|
||||
Event::ResponseSendTaskResult(
|
||||
result.expect("non-empty response send task set")
|
||||
)
|
||||
}
|
||||
_ = serve_loop_ct.cancelled() => {
|
||||
tracing::info!("task cancelled");
|
||||
break QuitReason::Cancelled
|
||||
|
|
@ -1313,6 +1319,11 @@ where
|
|||
}
|
||||
}
|
||||
}
|
||||
Event::ResponseSendTaskResult(result) => {
|
||||
if let Err(error) = result {
|
||||
tracing::error!(%error, "response send task failed");
|
||||
}
|
||||
}
|
||||
// response and error
|
||||
Event::ToSink(m) => {
|
||||
if let Some(id) = match &m {
|
||||
|
|
|
|||
Loading…
Reference in a new issue