judge: 使用filename配置时限制并行任务数量为1

This commit is contained in:
undefined committed 2020-11-10 23:57:30 +08:00
1 parent 591acbb285
commit 88c15193d6
2 files changed
+3 -4

No files matched your search

+2 -1
View File
@@ -143,7 +143,8 @@ export const judge = async (ctx) => {
ctx.total_score = 0;
ctx.total_memory_usage_kb = 0;
ctx.total_time_usage_ms = 0;
ctx.queue = new Queue({ concurrency: ctx.config.concurrency || 2 });
// sandbox seems cannot handle concurrent tasks with output file correctly
ctx.queue = new Queue({ concurrency: ctx.config.concurrency || (ctx.config.filename ? 1 : 2) });
for (const sid in ctx.config.subtasks) tasks.push(judgeSubtask(ctx.config.subtasks[sid])(ctx));
await Promise.all(tasks);
ctx.stat.done = new Date();
+1 -3
View File
@@ -104,9 +104,7 @@ export async function run(execute, params?) {
else ret.stdout = result.files.stdout || '';
if (params.stderr) await fs.writeFile(params.stderr, result.files.stderr || '');
else ret.stderr = result.files.stderr || '';
if (result.error) {
ret.error = result.error;
}
if (result.error) ret.error = result.error;
ret.files = result.files;
ret.fileIds = result.fileIds || {};
return ret;