github.com/SandwichDev/go-internals@v0.0.0-20210605002614-12311ac6b2c5/poll/fd_writev_unix.go (about) 1 // Copyright 2018 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 // +build dragonfly freebsd linux netbsd openbsd 6 7 package poll 8 9 import ( 10 "syscall" 11 "unsafe" 12 ) 13 14 func writev(fd int, iovecs []syscall.Iovec) (uintptr, error) { 15 var ( 16 r uintptr 17 e syscall.Errno 18 ) 19 for { 20 r, _, e = syscall.Syscall(syscall.SYS_WRITEV, uintptr(fd), uintptr(unsafe.Pointer(&iovecs[0])), uintptr(len(iovecs))) 21 if e != syscall.EINTR { 22 break 23 } 24 } 25 if e != 0 { 26 return r, e 27 } 28 return r, nil 29 }