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// +build freebsd linux netbsd openbsd solaris 6 7package runtime 8 9func 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