rework multibuf copy

pull/1524/head^2
Darien Raymond 6 years ago
parent 9ee9af9e02
commit a3fd81dfff
No known key found for this signature in database
GPG Key ID: 7251FFA14BB18169

@ -392,7 +392,11 @@ func (c *Connection) WriteMultiBuffer(mb buf.MultiBuffer) error {
} }
}() }()
mbPtr := &mb f := func(x *buf.MultiBuffer) buf.Supplier {
return func(bb []byte) (int, error) {
return x.Read(bb[:c.mss])
}
}(&mb)
for { for {
for { for {
@ -400,13 +404,11 @@ func (c *Connection) WriteMultiBuffer(mb buf.MultiBuffer) error {
return io.ErrClosedPipe return io.ErrClosedPipe
} }
if !c.sendingWorker.Push(func(bb []byte) (int, error) { if !c.sendingWorker.Push(f) {
return mbPtr.Read(bb[:c.mss])
}) {
break break
} }
updatePending = true updatePending = true
if mbPtr.IsEmpty() { if mb.IsEmpty() {
return nil return nil
} }
} }

Loading…
Cancel
Save