//go:build darwin || linux || netbsd || openbsd // +build darwin linux netbsd openbsd package ulimit import ( unix "golang.org/x/sys/unix" ) func init() { supportsFDManagement = true getLimit = unixGetLimit setLimit = unixSetLimit } func unixGetLimit() (uint64, uint64, error) { rlimit := unix.Rlimit{} err := unix.Getrlimit(unix.RLIMIT_NOFILE, &rlimit) return rlimit.Cur, rlimit.Max, err } func unixSetLimit(soft uint64, max uint64) error { rlimit := unix.Rlimit{ Cur: soft, Max: max, } return unix.Setrlimit(unix.RLIMIT_NOFILE, &rlimit) }