From 97b8f6028a76b8fb5c1d9bb85252e3407cbeb1e7 Mon Sep 17 00:00:00 2001 From: orosmatthew Date: Tue, 9 May 2023 17:19:19 -0400 Subject: [PATCH] [sandbox] Terminate after 30 seconds --- sandbox/src/run/java.ts | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/sandbox/src/run/java.ts b/sandbox/src/run/java.ts index b3399b3..990aeda 100644 --- a/sandbox/src/run/java.ts +++ b/sandbox/src/run/java.ts @@ -33,8 +33,22 @@ export async function runJava( child.stdin.write(input); child.stdin.end(); + let resolved = false; + child.on('close', () => { - resolve(outputBuffer); + if (!resolved) { + resolved = true; + resolve(outputBuffer); + } }); + + setTimeout(() => { + if (!resolved) { + console.log('30 seconds reached, killing process'); + resolved = true; + child.kill('SIGKILL'); + resolve(outputBuffer + '\n[Timeout after 30 seconds]'); + } + }, 30000); }); }