Files
EdgeNode/internal/utils/rlimit_darwin.go

31 lines
555 B
Go
Raw Normal View History

2022-03-19 12:17:28 +08:00
//go:build darwin
2020-07-22 22:18:47 +08:00
// +build darwin
package utils
import (
"syscall"
)
2022-03-19 12:17:28 +08:00
// SetRLimit set resource limit
2020-07-22 22:18:47 +08:00
func SetRLimit(limit uint64) error {
2022-03-19 12:17:28 +08:00
var rLimit = &syscall.Rlimit{}
2020-07-22 22:18:47 +08:00
err := syscall.Getrlimit(syscall.RLIMIT_NOFILE, rLimit)
if err != nil {
return err
}
if rLimit.Cur < limit {
rLimit.Cur = limit
}
if rLimit.Max < limit {
rLimit.Max = limit
}
return syscall.Setrlimit(syscall.RLIMIT_NOFILE, rLimit)
}
2022-03-19 12:17:28 +08:00
// SetSuitableRLimit set best resource limit value
func SetSuitableRLimit() error {
return SetRLimit(4096 * 100) // 1M=100Files
2020-07-22 22:18:47 +08:00
}