go-judge/pkg/pool/cgroup_fake_pool.go
criyle 7951f37bd4 Implements the draft executor server
- Add new command executorserver as the draft executor server
- Move shared pool logic into /pkg/pool
2020-03-04 02:12:26 -05:00

35 lines
711 B
Go

package pool
import "github.com/criyle/go-judge/pkg/envexec"
var _ envexec.CgroupPool = &FakeCgroupPool{}
// FakeCgroupPool implements cgroup pool but not actually do pool
type FakeCgroupPool struct {
builder CgroupBuilder
}
// NewFakeCgroupPool creates FakeCgroupPool
func NewFakeCgroupPool(builder CgroupBuilder) *FakeCgroupPool {
return &FakeCgroupPool{builder: builder}
}
// Get gets new cgroup
func (f *FakeCgroupPool) Get() (envexec.Cgroup, error) {
cg, err := f.builder.Build()
if err != nil {
return nil, err
}
return (*wCgroup)(cg), nil
}
// Put destory the cgroup
func (f *FakeCgroupPool) Put(c envexec.Cgroup) {
c.Destory()
}
// Shutdown noop
func (f *FakeCgroupPool) Shutdown() {
}