1package sysfs
2
3import (
4 "io/fs"
5 "syscall"
6
7 "github.com/tetratelabs/wazero/experimental/sys"
8)
9
10func setNonblock(fd uintptr, enable bool) sys.Errno {
11 // We invoke the syscall, but this is currently no-op.
12 return sys.UnwrapOSError(syscall.SetNonblock(syscall.Handle(fd), enable))
13}
14
15func isNonblock(f *osFile) bool {
16 // On Windows, we support non-blocking reads only on named pipes.
17 isValid := false
18 st, errno := f.Stat()
19 if errno == 0 {
20 isValid = st.Mode&fs.ModeNamedPipe != 0
21 }
22 return isValid && f.flag&sys.O_NONBLOCK == sys.O_NONBLOCK
23}