go-judge/env/linuxcontainer/cgroup_fake_pool_linux.go
2021-03-19 00:28:11 -07:00

36 lines
758 B
Go

package linuxcontainer
import "time"
var _ CgroupPool = &FakeCgroupPool{}
// FakeCgroupPool implements cgroup pool but not actually do pool
type FakeCgroupPool struct {
builder CgroupBuilder
cfsPeriod time.Duration
}
// NewFakeCgroupPool creates FakeCgroupPool
func NewFakeCgroupPool(builder CgroupBuilder, cfsPeriod time.Duration) CgroupPool {
return &FakeCgroupPool{builder: builder, cfsPeriod: cfsPeriod}
}
// Get gets new cgroup
func (f *FakeCgroupPool) Get() (Cgroup, error) {
cg, err := f.builder.Build()
if err != nil {
return nil, err
}
return &wCgroup{cg: cg, cfsPeriod: f.cfsPeriod}, nil
}
// Put destroy the cgroup
func (f *FakeCgroupPool) Put(c Cgroup) {
c.Destroy()
}
// Shutdown noop
func (f *FakeCgroupPool) Shutdown() {
}