lotus/lib/ulimit/ulimit_unix.go
2021-08-30 16:43:21 -07:00

29 lines
560 B
Go

//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)
}