go-judge/envexec/single.go
criyle 78bb4d85de filestore: use /dev/shm instead of memory as file storage
- increase default tmpfs size to 128M
- add /config to get file store path
- remove memory only file store

close #20
2021-09-19 15:47:24 -07:00

35 lines
806 B
Go

package envexec
import (
"context"
)
// Single defines the running instruction to run single
// exec in restricted within cgroup
type Single struct {
// Cmd defines Cmd running in parallel in multiple environments
Cmd *Cmd
// NewStoreFile defines interface to create stored file
NewStoreFile NewStoreFile
}
// Run starts the cmd and returns exec results
func (s *Single) Run(ctx context.Context) (result Result, err error) {
// prepare files
fd, pipeToCollect, err := prepareCmdFd(s.Cmd, len(s.Cmd.Files), s.NewStoreFile)
if err != nil {
return result, err
}
result, err = runSingle(ctx, s.Cmd, fd, pipeToCollect, s.NewStoreFile)
if err != nil {
result.Status = StatusInternalError
result.Error = err.Error()
return result, err
}
// collect potential error
return result, err
}