Просмотр исходного кода

Move rlimit to utils

tags/1.0^2
9seconds 6 лет назад
Родитель
Сommit
299a34252e
4 измененных файлов: 36 добавлений и 21 удалений
  1. 1
    1
      go.mod
  2. 2
    20
      main.go
  3. 26
    0
      utils/rlimit.go
  4. 7
    0
      utils/rlimit_windows.go

+ 1
- 1
go.mod Просмотреть файл

26
 	go.uber.org/multierr v1.1.0 // indirect
26
 	go.uber.org/multierr v1.1.0 // indirect
27
 	go.uber.org/zap v1.10.0
27
 	go.uber.org/zap v1.10.0
28
 	golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7 // indirect
28
 	golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7 // indirect
29
-	golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a // indirect
29
+	golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a
30
 	gopkg.in/alecthomas/kingpin.v2 v2.2.6
30
 	gopkg.in/alecthomas/kingpin.v2 v2.2.6
31
 	gopkg.in/alexcesaro/statsd.v2 v2.0.0
31
 	gopkg.in/alexcesaro/statsd.v2 v2.0.0
32
 	gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 // indirect
32
 	gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 // indirect

+ 2
- 20
main.go Просмотреть файл

3
 import (
3
 import (
4
 	"math/rand"
4
 	"math/rand"
5
 	"os"
5
 	"os"
6
-	"syscall"
7
 	"time"
6
 	"time"
8
 
7
 
9
-	"github.com/juju/errors"
10
 	kingpin "gopkg.in/alecthomas/kingpin.v2"
8
 	kingpin "gopkg.in/alecthomas/kingpin.v2"
11
 
9
 
12
 	"github.com/9seconds/mtg/cli"
10
 	"github.com/9seconds/mtg/cli"
13
 	"github.com/9seconds/mtg/config"
11
 	"github.com/9seconds/mtg/config"
12
+	"github.com/9seconds/mtg/utils"
14
 )
13
 )
15
 
14
 
16
 var version = "dev" // this has to be set by build ld flags
15
 var version = "dev" // this has to be set by build ld flags
143
 	app.Version(version)
142
 	app.Version(version)
144
 	app.HelpFlag.Short('h')
143
 	app.HelpFlag.Short('h')
145
 
144
 
146
-	if err := setRLimit(); err != nil {
145
+	if err := utils.SetLimits(); err != nil {
147
 		cli.Fatal(err.Error())
146
 		cli.Fatal(err.Error())
148
 	}
147
 	}
149
 
148
 
186
 		}
185
 		}
187
 	}
186
 	}
188
 }
187
 }
189
-
190
-func setRLimit() (err error) {
191
-	rLimit := syscall.Rlimit{}
192
-	err = syscall.Getrlimit(syscall.RLIMIT_NOFILE, &rLimit)
193
-	if err != nil {
194
-		err = errors.Annotate(err, "Cannot get rlimit")
195
-		return
196
-	}
197
-	rLimit.Cur = rLimit.Max
198
-
199
-	err = syscall.Setrlimit(syscall.RLIMIT_NOFILE, &rLimit)
200
-	if err != nil {
201
-		err = errors.Annotate(err, "Cannot set rlimit")
202
-	}
203
-
204
-	return
205
-}

+ 26
- 0
utils/rlimit.go Просмотреть файл

1
+// +build !windows
2
+
3
+package utils
4
+
5
+import (
6
+	"golang.org/x/sys/unix"
7
+
8
+	"github.com/juju/errors"
9
+)
10
+
11
+func SetLimits() (err error) {
12
+	rLimit := unix.Rlimit{}
13
+	err = unix.Getrlimit(unix.RLIMIT_NOFILE, &rLimit)
14
+	if err != nil {
15
+		err = errors.Annotate(err, "Cannot get rlimit")
16
+		return
17
+	}
18
+	rLimit.Cur = rLimit.Max
19
+
20
+	err = unix.Setrlimit(unix.RLIMIT_NOFILE, &rLimit)
21
+	if err != nil {
22
+		err = errors.Annotate(err, "Cannot set rlimit")
23
+	}
24
+
25
+	return
26
+}

+ 7
- 0
utils/rlimit_windows.go Просмотреть файл

1
+// +build windows
2
+
3
+package utils
4
+
5
+func SetLimits() error {
6
+	return nil
7
+}

Загрузка…
Отмена
Сохранить