From d483531b0ed2405f5a87a4680e75ea0807ffceda Mon Sep 17 00:00:00 2001 From: undefined Date: Mon, 30 Jan 2023 12:38:59 +0800 Subject: [PATCH] judge: fix hosts dispose --- packages/hydrojudge/src/daemon.ts | 4 ++-- packages/hydrojudge/src/judge/objective.ts | 6 +++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/hydrojudge/src/daemon.ts b/packages/hydrojudge/src/daemon.ts index 68c5af0b3..5135e8198 100644 --- a/packages/hydrojudge/src/daemon.ts +++ b/packages/hydrojudge/src/daemon.ts @@ -29,13 +29,13 @@ declare global { } } global.onDestroy ||= []; -global.hosts ||= []; +global.hosts ||= {}; let exit = false; const terminate = async () => { log.info('正在保存数据'); try { - await Promise.all(global.hosts.map((f) => f.dispose?.())); + await Promise.all(Object.values(global.hosts).map((f) => f.dispose?.())); process.exit(1); } catch (e) { if (exit) process.exit(1); diff --git a/packages/hydrojudge/src/judge/objective.ts b/packages/hydrojudge/src/judge/objective.ts index 0f24a2c13..897657e30 100644 --- a/packages/hydrojudge/src/judge/objective.ts +++ b/packages/hydrojudge/src/judge/objective.ts @@ -51,7 +51,11 @@ export async function judge({ }, }); }; - const usrAns = (answers[key]?.toString() || '').trim(); + if (!answers[key]) { + report(STATUS.STATUS_WRONG_ANSWER, 0, 'No answer'); + continue; + } + const usrAns = answers[key].toString().trim(); if (ansInfo instanceof Array) { const fullScore = (+ansInfo[1]) || 0; const stdAns = ansInfo[0];