| // 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 | 
 | } |