forked from quic-go/quic-go
@@ -605,6 +605,9 @@ func (s *Session) garbageCollectStreams() {
|
||||
if v == nil {
|
||||
continue
|
||||
}
|
||||
if v.finishedWriting() {
|
||||
s.blockedManager.RemoveBlockedStream(k)
|
||||
}
|
||||
if v.finished() {
|
||||
s.streams[k] = nil
|
||||
}
|
||||
|
||||
@@ -185,6 +185,20 @@ var _ = Describe("Session", func() {
|
||||
Expect(session.streams[5]).To(BeNil())
|
||||
})
|
||||
|
||||
It("removes closed streams from BlockedManager", func() {
|
||||
session.handleStreamFrame(&frames.StreamFrame{
|
||||
StreamID: 5,
|
||||
Data: []byte{0xde, 0xca, 0xfb, 0xad},
|
||||
})
|
||||
Expect(session.streams[5]).ToNot(BeNil())
|
||||
session.blockedManager.AddBlockedStream(5, 4)
|
||||
Expect(session.blockedManager.blockedStreams).To(HaveKey(protocol.StreamID(5)))
|
||||
err := session.streams[5].Close()
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
session.garbageCollectStreams()
|
||||
Expect(session.blockedManager.blockedStreams).ToNot(HaveKey(protocol.StreamID(5)))
|
||||
})
|
||||
|
||||
It("closes empty streams with error", func() {
|
||||
testErr := errors.New("test")
|
||||
session.handleStreamFrame(&frames.StreamFrame{
|
||||
|
||||
Reference in New Issue
Block a user