mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
os: use syscall.Pipe2 on Linux
Update #2656 R=golang-dev, iant, minux.ma, bradfitz CC=golang-dev https://golang.org/cl/7065063
This commit is contained in:
parent
b73a1a8e32
commit
98259b9211
3 changed files with 61 additions and 19 deletions
|
|
@ -274,25 +274,6 @@ func basename(name string) string {
|
|||
return name
|
||||
}
|
||||
|
||||
// Pipe returns a connected pair of Files; reads from r return bytes written to w.
|
||||
// It returns the files and an error, if any.
|
||||
func Pipe() (r *File, w *File, err error) {
|
||||
var p [2]int
|
||||
|
||||
// See ../syscall/exec.go for description of lock.
|
||||
syscall.ForkLock.RLock()
|
||||
e := syscall.Pipe(p[0:])
|
||||
if e != nil {
|
||||
syscall.ForkLock.RUnlock()
|
||||
return nil, nil, NewSyscallError("pipe", e)
|
||||
}
|
||||
syscall.CloseOnExec(p[0])
|
||||
syscall.CloseOnExec(p[1])
|
||||
syscall.ForkLock.RUnlock()
|
||||
|
||||
return NewFile(uintptr(p[0]), "|0"), NewFile(uintptr(p[1]), "|1"), nil
|
||||
}
|
||||
|
||||
// TempDir returns the default directory to use for temporary files.
|
||||
func TempDir() string {
|
||||
dir := Getenv("TMPDIR")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue