stream: route closed to session and request; closed deregisters and signals caller

This commit is contained in:
Jay
2026-05-17 12:43:01 -04:00
parent f7948c08b8
commit de3a59d6a6
2 changed files with 68 additions and 6 deletions
+15 -1
View File
@@ -292,7 +292,21 @@ func (m *RequestManager) dispatchInbox(msg InboxMessage) {
default:
}
case "CLOSED":
// route to session and request
subID, message, err := envelope.FindClosed(msg.Data)
if err != nil {
return
}
m.mu.RLock()
req, reqOk := m.reqs[subID]
sub, subOk := m.inboxSubs[subID]
m.mu.RUnlock()
if reqOk {
req.closed <- ReqClosed{
PeerID: msg.ID, ReceivedAt: msg.ReceivedAt, Data: message}
}
if subOk {
sub.closed <- struct{}{}
}
}
}