1 // Copyright 2014 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris 6 // +build aix darwin dragonfly freebsd linux netbsd openbsd solaris 7 8 package rand 9 10 import ( 11 "io/fs" 12 "syscall" 13 ) 14 15 func init() { 16 isEAGAIN = unixIsEAGAIN 17 } 18 19 // unixIsEAGAIN reports whether err is a syscall.EAGAIN wrapped in a PathError. 20 // See golang.org/issue/9205 21 func unixIsEAGAIN(err error) bool { 22 if pe, ok := err.(*fs.PathError); ok { 23 if errno, ok := pe.Err.(syscall.Errno); ok && errno == syscall.EAGAIN { 24 return true 25 } 26 } 27 return false 28 } 29