fix: add timeout handling for script execution in Vm class #14
@ -172,16 +172,20 @@ export class Vm {
|
|||||||
`;
|
`;
|
||||||
|
|
||||||
const compiledScript = await this.isolate.compileScript(scriptWithResult);
|
const compiledScript = await this.isolate.compileScript(scriptWithResult);
|
||||||
|
let timer = 0n;
|
||||||
|
|
||||||
const interval = setInterval(() => {
|
const interval = setInterval(() => {
|
||||||
if (
|
if (
|
||||||
this.isolate.cpuTime > this.cpuTimeLimit ||
|
this.isolate.cpuTime > this.cpuTimeLimit ||
|
||||||
this.isolate.wallTime > this.timeLimit
|
this.isolate.wallTime > this.timeLimit ||
|
||||||
|
timer > this.timeLimit
|
||||||
) {
|
) {
|
||||||
this.isolate.dispose();
|
this.isolate.dispose();
|
||||||
|
|
||||||
rejectPromise(new Error("Script execution timed out"));
|
rejectPromise(new Error("Script execution timed out"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
timer += 500000n;
|
||||||
}, 500);
|
}, 500);
|
||||||
|
|
||||||
compiledScript.run(this.context);
|
compiledScript.run(this.context);
|
||||||
|
|||||||
Reference in New Issue
Block a user