| //go:build !windows && go1.12 |
| // +build !windows,go1.12 |
| |
| package pty |
| |
| import "os" |
| |
| func ioctl(f *os.File, cmd, ptr uintptr) error { |
| return ioctlInner(f.Fd(), cmd, ptr) // Fall back to blocking io. |
| } |
| |
| // NOTE: Unused. Keeping for reference. |
| func ioctlNonblock(f *os.File, cmd, ptr uintptr) error { |
| sc, e := f.SyscallConn() |
| if e != nil { |
| return ioctlInner(f.Fd(), cmd, ptr) // Fall back to blocking io (old behavior). |
| } |
| |
| ch := make(chan error, 1) |
| defer close(ch) |
| |
| e = sc.Control(func(fd uintptr) { ch <- ioctlInner(fd, cmd, ptr) }) |
| if e != nil { |
| return e |
| } |
| e = <-ch |
| return e |
| } |