diff --git a/worker/cgroup.go b/worker/cgroup.go index 8ae2749..32f4d72 100644 --- a/worker/cgroup.go +++ b/worker/cgroup.go @@ -62,7 +62,12 @@ func waitExec () { panic("Exec failed.") } -func newCgroupHook(p mirrorProvider, basePath, baseGroup, subsystem string, memLimit MemBytes) *cgroupHook { +func newCgroupHook(p mirrorProvider, cfg cgroupConfig, memLimit MemBytes) *cgroupHook { + var ( + basePath = cfg.BasePath + baseGroup = cfg.Group + subsystem = cfg.Subsystem + ) if basePath == "" { basePath = "/sys/fs/cgroup" } diff --git a/worker/cgroup_test.go b/worker/cgroup_test.go index f56e59b..5ab91fe 100644 --- a/worker/cgroup_test.go +++ b/worker/cgroup_test.go @@ -73,7 +73,8 @@ sleep 30 provider, err := newCmdProvider(c) So(err, ShouldBeNil) - cg := newCgroupHook(provider, "/sys/fs/cgroup", "tunasync", "cpu", 0) + cgcf := cgroupConfig{BasePath: "/sys/fs/cgroup", Group: "tunasync", Subsystem: "cpu"} + cg := newCgroupHook(provider, cgcf, 0) provider.AddHook(cg) err = cg.preExec() @@ -133,7 +134,8 @@ sleep 30 provider, err := newRsyncProvider(c) So(err, ShouldBeNil) - cg := newCgroupHook(provider, "/sys/fs/cgroup", "tunasync", "cpu", 512 * units.MiB) + cgcf := cgroupConfig{BasePath: "/sys/fs/cgroup", Group: "tunasync", Subsystem: "cpu"} + cg := newCgroupHook(provider, cgcf, 512 * units.MiB) provider.AddHook(cg) err = cg.preExec() diff --git a/worker/provider.go b/worker/provider.go index cd89472..443c8f5 100644 --- a/worker/provider.go +++ b/worker/provider.go @@ -212,8 +212,7 @@ func newMirrorProvider(mirror mirrorConfig, cfg *Config) mirrorProvider { // Add Cgroup Hook provider.AddHook( newCgroupHook( - provider, cfg.Cgroup.BasePath, cfg.Cgroup.Group, - cfg.Cgroup.Subsystem, mirror.MemoryLimit, + provider, cfg.Cgroup, mirror.MemoryLimit, ), ) }