// Copyright 2019 The Go Authors. All rights reserved. | |
// Use of this source code is governed by a BSD-style | |
// license that can be found in the LICENSE file. | |
// +build freebsd hurd linux netbsd openbsd solaris | |
package runtime | |
func nonblockingPipe() (r, w int32, errno int32) { | |
r, w, errno = pipe2(_O_NONBLOCK | _O_CLOEXEC) | |
if errno == -_ENOSYS { | |
r, w, errno = pipe() | |
if errno != 0 { | |
return -1, -1, errno | |
} | |
closeonexec(r) | |
setNonblock(r) | |
closeonexec(w) | |
setNonblock(w) | |
} | |
return r, w, errno | |
} |