blob: 70263e6eb3fd1052570f386bec2b0abc5f590a8c (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
package maxprocs
import (
"bytes"
"io/ioutil"
"math"
"os"
"strconv"
)
func getEnv(envName string) (string, bool) {
val, ok := os.LookupEnv(envName)
return val, ok && val != ""
}
func applyIntStringLimit(val string) int {
maxProc, err := strconv.Atoi(val)
if err == nil {
return Adjust(maxProc)
}
return Adjust(SafeProc)
}
func applyFloatStringLimit(val string) int {
maxProc, err := strconv.ParseFloat(val, 64)
if err != nil {
return Adjust(SafeProc)
}
return applyFloatLimit(maxProc)
}
func applyFloatLimit(val float64) int {
maxProc := int(math.Floor(val))
return Adjust(maxProc)
}
func readFileInt(filename string) (int, error) {
raw, err := ioutil.ReadFile(filename)
if err != nil {
return 0, err
}
return strconv.Atoi(string(bytes.TrimSpace(raw)))
}
|