diff options
Diffstat (limited to 'vendor/github.com/KimMachineGun/automemlimit/memlimit/experiment.go')
-rw-r--r-- | vendor/github.com/KimMachineGun/automemlimit/memlimit/experiment.go | 59 |
1 files changed, 0 insertions, 59 deletions
diff --git a/vendor/github.com/KimMachineGun/automemlimit/memlimit/experiment.go b/vendor/github.com/KimMachineGun/automemlimit/memlimit/experiment.go deleted file mode 100644 index 2a7c320ed..000000000 --- a/vendor/github.com/KimMachineGun/automemlimit/memlimit/experiment.go +++ /dev/null @@ -1,59 +0,0 @@ -package memlimit - -import ( - "fmt" - "os" - "reflect" - "strings" -) - -const ( - envAUTOMEMLIMIT_EXPERIMENT = "AUTOMEMLIMIT_EXPERIMENT" -) - -// Experiments is a set of experiment flags. -// It is used to enable experimental features. -// -// You can set the flags by setting the environment variable AUTOMEMLIMIT_EXPERIMENT. -// The value of the environment variable is a comma-separated list of experiment names. -// -// The following experiment names are known: -// -// - none: disable all experiments -// - system: enable fallback to system memory limit -type Experiments struct { - // System enables fallback to system memory limit. - System bool -} - -func parseExperiments() (Experiments, error) { - var exp Experiments - - // Create a map of known experiment names. - names := make(map[string]func(bool)) - rv := reflect.ValueOf(&exp).Elem() - rt := rv.Type() - for i := 0; i < rt.NumField(); i++ { - field := rv.Field(i) - names[strings.ToLower(rt.Field(i).Name)] = field.SetBool - } - - // Parse names. - for _, f := range strings.Split(os.Getenv(envAUTOMEMLIMIT_EXPERIMENT), ",") { - if f == "" { - continue - } - if f == "none" { - exp = Experiments{} - continue - } - val := true - set, ok := names[f] - if !ok { - return Experiments{}, fmt.Errorf("unknown AUTOMEMLIMIT_EXPERIMENT %s", f) - } - set(val) - } - - return exp, nil -} |