Source file src/runtime/nbpipe_pipe2.go
1 // Copyright 2019 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 //go:build dragonfly || freebsd || linux || netbsd || openbsd || solaris 6 7 package runtime 8 9 func nonblockingPipe() (r, w int32, errno int32) { 10 r, w, errno = pipe2(_O_NONBLOCK | _O_CLOEXEC) 11 if errno == -_ENOSYS { 12 r, w, errno = pipe() 13 if errno != 0 { 14 return -1, -1, errno 15 } 16 closeonexec(r) 17 setNonblock(r) 18 closeonexec(w) 19 setNonblock(w) 20 } 21 return r, w, errno 22 } 23