mirror of https://github.com/golang/go.git
internal/poll: avoid unnecessary memory allocation in Writev
Writev was allocating a new []syscall.Iovec every call, rather than reusing the cached copy available at *fd.iovec. Fixes #26663. Change-Id: I5967b0d82dc671ce0eaf4ec36cc2a0e46eadde02 Reviewed-on: https://go-review.googlesource.com/c/go/+/172419 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
parent
d7df9de5a2
commit
33e5da48d5
|
|
@ -51,7 +51,10 @@ func (fd *FD) Writev(v *[][]byte) (int64, error) {
|
|||
if len(iovecs) == 0 {
|
||||
break
|
||||
}
|
||||
fd.iovecs = &iovecs // cache
|
||||
if fd.iovecs == nil {
|
||||
fd.iovecs = new([]syscall.Iovec)
|
||||
}
|
||||
*fd.iovecs = iovecs // cache
|
||||
|
||||
var wrote uintptr
|
||||
wrote, err = writev(fd.Sysfd, iovecs)
|
||||
|
|
|
|||
Loading…
Reference in New Issue