fix: drop Mutexes earlier in MCP server

This commit is contained in:
Michael Bolin
2025-08-28 22:28:07 -07:00
parent 2e3dc33718
commit 0963abdaf9

View File

@@ -365,7 +365,11 @@ impl McpClient {
}
};
if let Some(tx) = pending.lock().await.remove(&id) {
let tx_opt = {
let mut guard = pending.lock().await;
guard.remove(&id)
};
if let Some(tx) = tx_opt {
// Ignore send errors the receiver might have been dropped.
let _ = tx.send(JSONRPCMessage::Response(resp));
} else {
@@ -383,7 +387,11 @@ impl McpClient {
RequestId::String(_) => return, // see comment above
};
if let Some(tx) = pending.lock().await.remove(&id) {
let tx_opt = {
let mut guard = pending.lock().await;
guard.remove(&id)
};
if let Some(tx) = tx_opt {
let _ = tx.send(JSONRPCMessage::Error(err));
}
}