ns.atExit errors more readable, allows ns functions

This commit is contained in:
Snarling
2022-08-16 20:16:57 -04:00
parent ba5b0be7f4
commit 0c358c588e

View File

@ -52,22 +52,24 @@ function killWorkerScriptByPid(pid: number): boolean {
return false; return false;
} }
function stopAndCleanUpWorkerScript(workerScript: WorkerScript): void { function stopAndCleanUpWorkerScript(ws: WorkerScript): void {
if (typeof workerScript.atExit === "function") { killNetscriptDelay(ws);
if (typeof ws.atExit === "function") {
try { try {
workerScript.atExit(); ws.env.stopFlag = false;
ws.atExit();
} catch (e: unknown) { } catch (e: unknown) {
let message = e instanceof ScriptDeath ? e.errorMessage : String(e);
message = message.replace(/.*\|DELIMITER\|/, "");
dialogBoxCreate( dialogBoxCreate(
`Error trying to call atExit for script ${workerScript.name} on ${workerScript.hostname} ${ `Error trying to call atExit for script ${ws.name} on ${ws.hostname} ${ws.scriptRef.args}\n` + message,
workerScript.scriptRef.args
} ${String(e)}`,
); );
console.log(e);
} }
workerScript.atExit = undefined; ws.atExit = undefined;
} }
workerScript.env.stopFlag = true; ws.env.stopFlag = true;
killNetscriptDelay(workerScript); removeWorkerScript(ws);
removeWorkerScript(workerScript);
} }
/** /**