| // Copyright 2014 The Go Authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style | 
 | // license that can be found in the LICENSE file. | 
 |  | 
 | //go:build aix || darwin || dragonfly || freebsd || hurd || linux || netbsd || openbsd || solaris | 
 |  | 
 | package rand | 
 |  | 
 | import ( | 
 | 	"io/fs" | 
 | 	"syscall" | 
 | ) | 
 |  | 
 | func init() { | 
 | 	isEAGAIN = unixIsEAGAIN | 
 | } | 
 |  | 
 | // unixIsEAGAIN reports whether err is a syscall.EAGAIN wrapped in a PathError. | 
 | // See golang.org/issue/9205 | 
 | func unixIsEAGAIN(err error) bool { | 
 | 	if pe, ok := err.(*fs.PathError); ok { | 
 | 		if errno, ok := pe.Err.(syscall.Errno); ok && errno == syscall.EAGAIN { | 
 | 			return true | 
 | 		} | 
 | 	} | 
 | 	return false | 
 | } |