Prevent golang to set the non-block flag on ptmx open to avoid 100% CPU usage on reads (#53)
Signed-off-by: Guillaume J. Charmes <guillaume@charmes.net>
diff --git a/pty_darwin.go b/pty_darwin.go
index 4f4d5ca..9341543 100644
--- a/pty_darwin.go
+++ b/pty_darwin.go
@@ -8,10 +8,11 @@
)
func open() (pty, tty *os.File, err error) {
- p, err := os.OpenFile("/dev/ptmx", os.O_RDWR, 0)
+ pFD, err := syscall.Open("/dev/ptmx", syscall.O_RDWR|syscall.O_CLOEXEC, 0)
if err != nil {
return nil, nil, err
}
+ p := os.NewFile(uintptr(pFD), "/dev/ptmx")
sname, err := ptsname(p)
if err != nil {