From 299a34252e6e2f9c8f7fe42c44f3e4199b7f8b28 Mon Sep 17 00:00:00 2001 From: 9seconds Date: Wed, 4 Sep 2019 10:30:21 +0300 Subject: [PATCH] Move rlimit to utils --- go.mod | 2 +- main.go | 22 ++-------------------- utils/rlimit.go | 26 ++++++++++++++++++++++++++ utils/rlimit_windows.go | 7 +++++++ 4 files changed, 36 insertions(+), 21 deletions(-) create mode 100644 utils/rlimit.go create mode 100644 utils/rlimit_windows.go diff --git a/go.mod b/go.mod index 92856ed..f3e79de 100644 --- a/go.mod +++ b/go.mod @@ -26,7 +26,7 @@ require ( go.uber.org/multierr v1.1.0 // indirect go.uber.org/zap v1.10.0 golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7 // indirect - golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a // indirect + golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a gopkg.in/alecthomas/kingpin.v2 v2.2.6 gopkg.in/alexcesaro/statsd.v2 v2.0.0 gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 // indirect diff --git a/main.go b/main.go index 054292e..4fc07d0 100644 --- a/main.go +++ b/main.go @@ -3,14 +3,13 @@ package main import ( "math/rand" "os" - "syscall" "time" - "github.com/juju/errors" kingpin "gopkg.in/alecthomas/kingpin.v2" "github.com/9seconds/mtg/cli" "github.com/9seconds/mtg/config" + "github.com/9seconds/mtg/utils" ) var version = "dev" // this has to be set by build ld flags @@ -143,7 +142,7 @@ func main() { app.Version(version) app.HelpFlag.Short('h') - if err := setRLimit(); err != nil { + if err := utils.SetLimits(); err != nil { cli.Fatal(err.Error()) } @@ -186,20 +185,3 @@ func main() { } } } - -func setRLimit() (err error) { - rLimit := syscall.Rlimit{} - err = syscall.Getrlimit(syscall.RLIMIT_NOFILE, &rLimit) - if err != nil { - err = errors.Annotate(err, "Cannot get rlimit") - return - } - rLimit.Cur = rLimit.Max - - err = syscall.Setrlimit(syscall.RLIMIT_NOFILE, &rLimit) - if err != nil { - err = errors.Annotate(err, "Cannot set rlimit") - } - - return -} diff --git a/utils/rlimit.go b/utils/rlimit.go new file mode 100644 index 0000000..98ed947 --- /dev/null +++ b/utils/rlimit.go @@ -0,0 +1,26 @@ +// +build !windows + +package utils + +import ( + "golang.org/x/sys/unix" + + "github.com/juju/errors" +) + +func SetLimits() (err error) { + rLimit := unix.Rlimit{} + err = unix.Getrlimit(unix.RLIMIT_NOFILE, &rLimit) + if err != nil { + err = errors.Annotate(err, "Cannot get rlimit") + return + } + rLimit.Cur = rLimit.Max + + err = unix.Setrlimit(unix.RLIMIT_NOFILE, &rLimit) + if err != nil { + err = errors.Annotate(err, "Cannot set rlimit") + } + + return +} diff --git a/utils/rlimit_windows.go b/utils/rlimit_windows.go new file mode 100644 index 0000000..58bdf39 --- /dev/null +++ b/utils/rlimit_windows.go @@ -0,0 +1,7 @@ +// +build windows + +package utils + +func SetLimits() error { + return nil +}