forked from quic-go/quic-go
don't enqueue send stream for sending on duplicate Close calls (#4815)
This commit is contained in:
@@ -398,7 +398,7 @@ func (s *sendStream) isNewlyCompleted() bool {
|
||||
|
||||
func (s *sendStream) Close() error {
|
||||
s.mutex.Lock()
|
||||
if s.closeForShutdownErr != nil {
|
||||
if s.closeForShutdownErr != nil || s.finishedWriting {
|
||||
s.mutex.Unlock()
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -431,8 +431,6 @@ func TestSendStreamClose(t *testing.T) {
|
||||
require.False(t, hasMore)
|
||||
|
||||
// further calls to Close don't do anything
|
||||
// TODO(#4800): there shouldn't be any calls to mockSender
|
||||
mockSender.EXPECT().onHasStreamData(streamID, str)
|
||||
require.NoError(t, str.Close())
|
||||
_, ok, hasMore = str.popStreamFrame(protocol.MaxByteCount, protocol.Version1)
|
||||
require.False(t, ok)
|
||||
|
||||
Reference in New Issue
Block a user