// +build darwin

package utils

import (
	"syscall"
)

// set resource limit
func SetRLimit(limit uint64) error {
	rLimit := &syscall.Rlimit{}
	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)
}

// set best resource limit value
func SetSuitableRLimit() {
	_ = SetRLimit(4096 * 100) // 1M=100Files
}
