No need to return WorkerScript from startNetscript*Script promises, their only calling function already has the correct object in a variable

This commit is contained in:
Heikki Aitakangas 2022-03-11 00:46:12 +02:00
parent cbd59975d4
commit a6710eb3e5

@ -60,7 +60,7 @@ export function prestigeWorkerScripts(): void {
// JS script promises need a little massaging to have the same guarantees as netscript // JS script promises need a little massaging to have the same guarantees as netscript
// promises. This does said massaging and kicks the script off. It returns a promise // promises. This does said massaging and kicks the script off. It returns a promise
// that resolves or rejects when the corresponding worker script is done. // that resolves or rejects when the corresponding worker script is done.
function startNetscript2Script(player: IPlayer, workerScript: WorkerScript): Promise<WorkerScript> { function startNetscript2Script(player: IPlayer, workerScript: WorkerScript): Promise<void> {
workerScript.running = true; workerScript.running = true;
// The name of the currently running netscript function, to prevent concurrent // The name of the currently running netscript function, to prevent concurrent
@ -125,10 +125,10 @@ function startNetscript2Script(player: IPlayer, workerScript: WorkerScript): Pro
// Note: the environment that we pass to the JS script only needs to contain the functions visible // Note: the environment that we pass to the JS script only needs to contain the functions visible
// to that script, which env.vars does at this point. // to that script, which env.vars does at this point.
return new Promise<WorkerScript>((resolve, reject) => { return new Promise<void>((resolve, reject) => {
executeJSScript(player, workerScript.getServer().scripts, workerScript) executeJSScript(player, workerScript.getServer().scripts, workerScript)
.then(() => { .then(() => {
resolve(workerScript); resolve();
}) })
.catch((e) => reject(e)); .catch((e) => reject(e));
}).catch((e) => { }).catch((e) => {
@ -155,7 +155,7 @@ function startNetscript2Script(player: IPlayer, workerScript: WorkerScript): Pro
}); });
} }
function startNetscript1Script(workerScript: WorkerScript): Promise<WorkerScript> { function startNetscript1Script(workerScript: WorkerScript): Promise<void> {
const code = workerScript.code; const code = workerScript.code;
workerScript.running = true; workerScript.running = true;
@ -170,7 +170,7 @@ function startNetscript1Script(workerScript: WorkerScript): Promise<WorkerScript
workerScript.env.stopFlag = true; workerScript.env.stopFlag = true;
workerScript.running = false; workerScript.running = false;
killWorkerScript(workerScript); killWorkerScript(workerScript);
return Promise.resolve(workerScript); return Promise.resolve();
} }
const interpreterInitialization = function (int: any, scope: any): void { const interpreterInitialization = function (int: any, scope: any): void {
@ -277,7 +277,7 @@ function startNetscript1Script(workerScript: WorkerScript): Promise<WorkerScript
workerScript.env.stopFlag = true; workerScript.env.stopFlag = true;
workerScript.running = false; workerScript.running = false;
killWorkerScript(workerScript); killWorkerScript(workerScript);
return Promise.resolve(workerScript); return Promise.resolve();
} }
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
@ -297,7 +297,7 @@ function startNetscript1Script(workerScript: WorkerScript): Promise<WorkerScript
if (more) { if (more) {
setTimeout(runInterpreter, Settings.CodeInstructionRunTime); setTimeout(runInterpreter, Settings.CodeInstructionRunTime);
} else { } else {
resolve(workerScript); resolve();
} }
} catch (e: any) { } catch (e: any) {
e = e.toString(); e = e.toString();
@ -550,7 +550,7 @@ function createAndAddWorkerScript(
WorkerScriptStartStopEventEmitter.emit(); WorkerScriptStartStopEventEmitter.emit();
// Start the script's execution // Start the script's execution
let scriptExecution: Promise<WorkerScript> | null = null; // Script's resulting promise let scriptExecution: Promise<void> | null = null; // Script's resulting promise
if (workerScript.name.endsWith(".js") || workerScript.name.endsWith(".ns")) { if (workerScript.name.endsWith(".js") || workerScript.name.endsWith(".ns")) {
scriptExecution = startNetscript2Script(player, workerScript); scriptExecution = startNetscript2Script(player, workerScript);
} else { } else {
@ -562,8 +562,7 @@ function createAndAddWorkerScript(
// Once the code finishes (either resolved or rejected, doesnt matter), set its // Once the code finishes (either resolved or rejected, doesnt matter), set its
// running status to false // running status to false
scriptExecution.then(function (w: WorkerScript) { scriptExecution.then(function () {
if(w !== workerScript) console.error("!BUG! Wrong WorkerScript instance !BUG!")
workerScript.running = false; workerScript.running = false;
workerScript.env.stopFlag = true; workerScript.env.stopFlag = true;
// On natural death, the earnings are transfered to the parent if it still exists. // On natural death, the earnings are transfered to the parent if it still exists.