github.com/tetratelabs/wazero@v1.2.1/internal/sysfs/dir.go (about) 1 package sysfs 2 3 import ( 4 "io" 5 "syscall" 6 7 "github.com/tetratelabs/wazero/internal/fsapi" 8 "github.com/tetratelabs/wazero/internal/platform" 9 ) 10 11 func adjustReaddirErr(f fsapi.File, isClosed bool, err error) syscall.Errno { 12 if err == io.EOF { 13 return 0 // e.g. Readdir on darwin returns io.EOF, but linux doesn't. 14 } else if errno := platform.UnwrapOSError(err); errno != 0 { 15 errno = dirError(f, isClosed, errno) 16 // Ignore errors when the file was closed or removed. 17 switch errno { 18 case syscall.EIO, syscall.EBADF: // closed while open 19 return 0 20 case syscall.ENOENT: // Linux error when removed while open 21 return 0 22 } 23 return errno 24 } 25 return 0 26 }