22 lines
543 B
Go
22 lines
543 B
Go
// 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.
|
|
|
|
//go:build dragonfly || 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
|
|
}
|