|
|
@ -125,9 +125,12 @@ async function adaptResult(result: SandboxResult, params: Parameter): Promise<Sa
|
|
|
|
files: result.files,
|
|
|
|
files: result.files,
|
|
|
|
code: result.exitStatus,
|
|
|
|
code: result.exitStatus,
|
|
|
|
};
|
|
|
|
};
|
|
|
|
if (ret.time >= (params.time || 16000)) {
|
|
|
|
if (ret.time > (params.time || 16000)) {
|
|
|
|
ret.status = STATUS.STATUS_TIME_LIMIT_EXCEEDED;
|
|
|
|
ret.status = STATUS.STATUS_TIME_LIMIT_EXCEEDED;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (ret.memory > (params.memory || parseMemoryMB(getConfig('memoryMax')))) {
|
|
|
|
|
|
|
|
ret.status = STATUS.STATUS_MEMORY_LIMIT_EXCEEDED;
|
|
|
|
|
|
|
|
}
|
|
|
|
const outname = params.filename ? `${params.filename}.out` : 'stdout';
|
|
|
|
const outname = params.filename ? `${params.filename}.out` : 'stdout';
|
|
|
|
ret.files = result.files || {};
|
|
|
|
ret.files = result.files || {};
|
|
|
|
ret.fileIds = result.fileIds || {};
|
|
|
|
ret.fileIds = result.fileIds || {};
|
|
|
@ -215,7 +218,9 @@ export async function run(execute: string, params?: Parameter): Promise<SandboxA
|
|
|
|
const queue = new PQueue({ concurrency: getConfig('concurrency') || getConfig('parallelism') });
|
|
|
|
const queue = new PQueue({ concurrency: getConfig('concurrency') || getConfig('parallelism') });
|
|
|
|
|
|
|
|
|
|
|
|
export function runQueued(execute: string, params?: Parameter, priority = 0) {
|
|
|
|
export function runQueued(execute: string, params?: Parameter, priority = 0) {
|
|
|
|
return queue.add(() => run(execute, params), { priority }) as Promise<SandboxAdaptedResult>;
|
|
|
|
return queue.add(() => {
|
|
|
|
|
|
|
|
const result = await run(execute, params), { priority }
|
|
|
|
|
|
|
|
}) as Promise<SandboxAdaptedResult>;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export async function versionCheck(reportWarn: (str: string) => void, reportError = reportWarn) {
|
|
|
|
export async function versionCheck(reportWarn: (str: string) => void, reportError = reportWarn) {
|
|
|
|