diff --git a/packages/hydrojudge/src/compile.ts b/packages/hydrojudge/src/compile.ts index 5b6eda6dc..18e41af66 100644 --- a/packages/hydrojudge/src/compile.ts +++ b/packages/hydrojudge/src/compile.ts @@ -37,6 +37,7 @@ export default async function compile( execute, copyIn: { ...copyIn, [target]: { fileId: fileIds[target] } }, clean: async () => await cleanup(), + [Symbol.asyncDispose]: async () => await cleanup(), _cacheable: target, }; } @@ -44,5 +45,6 @@ export default async function compile( execute, copyIn: { ...copyIn, [lang.code_file]: code }, clean: () => Promise.resolve(null), + [Symbol.asyncDispose]: () => Promise.resolve(null), }; } diff --git a/packages/hydrojudge/src/interface.ts b/packages/hydrojudge/src/interface.ts index 9dc5f684e..1d2c48a5b 100644 --- a/packages/hydrojudge/src/interface.ts +++ b/packages/hydrojudge/src/interface.ts @@ -8,6 +8,7 @@ export interface Execute { execute: string; clean: () => Promise; copyIn: Record; + [Symbol.asyncDispose]: () => Promise; _cacheable?: string; } diff --git a/packages/hydrojudge/src/task.ts b/packages/hydrojudge/src/task.ts index 5d2bebd75..817d5c1ee 100644 --- a/packages/hydrojudge/src/task.ts +++ b/packages/hydrojudge/src/task.ts @@ -42,7 +42,7 @@ export class JudgeTask { end: (data: Partial) => void; env: Record; callbackCache?: TestCase[]; - compileCache: Record> = {}; + compileCache: Record> = {}; constructor(public session: Session, public request: JudgeRequest) { this.stat.receive = new Date();