Skip to content

Commit

Permalink
internal/syscall/unix: don't use linkname to refer to syscall.fcntl
Browse files Browse the repository at this point in the history
Just open-code the fcntl syscall instead of relying on the obscurity of
go:linkname.

Change-Id: I3e4ec9db6539e016f56667d7b8b87aa37671d0e7
Reviewed-on: https://go-review.googlesource.com/130736
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
  • Loading branch information
tklauser committed Aug 24, 2018
1 parent 9cfa41c commit d8cf151
Showing 1 changed file with 4 additions and 10 deletions.
14 changes: 4 additions & 10 deletions src/internal/syscall/unix/nonblocking.go
Expand Up @@ -6,18 +6,12 @@

package unix

import (
"syscall"
_ "unsafe" // for go:linkname
)

//go:linkname syscall_fcntl syscall.fcntl
func syscall_fcntl(fd int, cmd int, arg int) (val int, err error)
import "syscall"

func IsNonblock(fd int) (nonblocking bool, err error) {
flag, err := syscall_fcntl(fd, syscall.F_GETFL, 0)
if err != nil {
return false, err
flag, _, e1 := syscall.Syscall(syscall.SYS_FCNTL, uintptr(fd), uintptr(syscall.F_GETFL), 0)
if e1 != 0 {
return false, e1
}
return flag&syscall.O_NONBLOCK != 0, nil
}

0 comments on commit d8cf151

Please sign in to comment.