File: ioctl.go

package info (click to toggle)
golang-github-creack-pty 1.1.21-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 324 kB
  • sloc: sh: 51; asm: 5; makefile: 2
file content (28 lines) | stat: -rw-r--r-- 590 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
//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
}