Browse Source

limit linux/windows/darwin/freebsd

LuKaicheng 4 years ago
parent
commit
d505179999
4 changed files with 36 additions and 0 deletions
  1. 6 0
      sys/limit_darwin.go
  2. 0 0
      sys/limit_freebsd.go
  3. 24 0
      sys/limit_linux.go
  4. 6 0
      sys/limit_windows.go

+ 6 - 0
sys/limit_darwin.go

@@ -0,0 +1,6 @@
+package sys
+
+// SetLimit set NOFILE
+func SetLimit(max uint64) error {
+	return nil
+}

+ 0 - 0
sys/limit.go → sys/limit_freebsd.go


+ 24 - 0
sys/limit_linux.go

@@ -0,0 +1,24 @@
+package sys
+
+import (
+	"syscall"
+)
+
+// SetLimit set NOFILE
+func SetLimit(max uint64) error {
+	var rlimit syscall.Rlimit
+
+	err := syscall.Getrlimit(syscall.RLIMIT_NOFILE, &rlimit)
+	if err != nil {
+		return err
+	}
+
+	rlimit.Cur = max
+	rlimit.Max = max
+	err = syscall.Setrlimit(syscall.RLIMIT_NOFILE, &rlimit)
+	if err != nil {
+		return err
+	}
+
+	return nil
+}

+ 6 - 0
sys/limit_windows.go

@@ -0,0 +1,6 @@
+package sys
+
+// SetLimit set NOFILE
+func SetLimit(max uint64) error {
+	return nil
+}