package envexec import ( "os" "github.com/criyle/go-sandbox/runner" ) func convertStatus(s runner.Status) Status { switch s { case runner.StatusNormal: return StatusAccepted case runner.StatusSignalled, runner.StatusNonzeroExitStatus: return StatusRuntimeError case runner.StatusMemoryLimitExceeded: return StatusMemoryLimitExceeded case runner.StatusTimeLimitExceeded: return StatusTimeLimitExceeded case runner.StatusOutputLimitExceeded: return StatusOutputLimitExceeded case runner.StatusDisallowedSyscall: return StatusDangerousSyscall default: return StatusInternalError } } func getFdArray(fd []*os.File) []uintptr { r := make([]uintptr, 0, len(fd)) for _, f := range fd { r = append(r, f.Fd()) } return r } func closeFiles(files []*os.File) { for _, f := range files { f.Close() } } func writeErrorC(errC chan error, err error) { select { case errC <- err: default: } }