Fix grpclite memory leak issue, close reader's underlying io.Reader.

This commit is contained in:
talrasha007 2025-03-01 18:29:18 +08:00 committed by 世界
parent 82ccfad160
commit ac322679e0
No known key found for this signature in database
GPG Key ID: CD109927C34A63C4

View File

@ -21,6 +21,7 @@ import (
var _ net.Conn = (*GunConn)(nil)
type GunConn struct {
rd io.Reader
reader *std_bufio.Reader
writer io.Writer
flusher http.Flusher
@ -31,6 +32,7 @@ type GunConn struct {
func newGunConn(reader io.Reader, writer io.Writer, flusher http.Flusher) *GunConn {
return &GunConn{
rd: reader,
reader: std_bufio.NewReader(reader),
writer: writer,
flusher: flusher,
@ -46,6 +48,7 @@ func newLateGunConn(writer io.Writer) *GunConn {
func (c *GunConn) setup(reader io.Reader, err error) {
if reader != nil {
c.rd = reader
c.reader = std_bufio.NewReader(reader)
}
c.err = err
@ -138,7 +141,7 @@ func (c *GunConn) FrontHeadroom() int {
}
func (c *GunConn) Close() error {
return common.Close(c.reader, c.writer)
return common.Close(c.rd, c.writer)
}
func (c *GunConn) LocalAddr() net.Addr {