Browse Source

Fixed a bug that mux.Session could not be properly closed when receiving an End status.

renahita6 2 years ago
parent
commit
3e4e050313
2 changed files with 2 additions and 0 deletions
  1. 1 0
      common/mux/client.go
  2. 1 0
      common/mux/server.go

+ 1 - 0
common/mux/client.go

@@ -355,6 +355,7 @@ func (m *ClientWorker) handleStatusEnd(meta *FrameMetadata, reader *buf.Buffered
 			common.Interrupt(s.input)
 			common.Interrupt(s.output)
 		}
+		common.Interrupt(s.input)
 		s.Close()
 	}
 	if meta.Option.Has(OptionData) {

+ 1 - 0
common/mux/server.go

@@ -202,6 +202,7 @@ func (w *ServerWorker) handleStatusEnd(meta *FrameMetadata, reader *buf.Buffered
 			common.Interrupt(s.input)
 			common.Interrupt(s.output)
 		}
+		common.Interrupt(s.input)
 		s.Close()
 	}
 	if meta.Option.Has(OptionData) {