diff --git a/transport/internet/kcp/connection.go b/transport/internet/kcp/connection.go index 1987b1ea..460aa2a4 100644 --- a/transport/internet/kcp/connection.go +++ b/transport/internet/kcp/connection.go @@ -392,21 +392,21 @@ func (c *Connection) WriteMultiBuffer(mb buf.MultiBuffer) error { } }() + mbPtr := &mb + for { for { if c == nil || c.State() != StateActive { return io.ErrClosedPipe } - mbPtr := &mb - if !c.sendingWorker.Push(func(bb []byte) (int, error) { return mbPtr.Read(bb[:c.mss]) }) { break } updatePending = true - if mb.IsEmpty() { + if mbPtr.IsEmpty() { return nil } }