aboutsummaryrefslogtreecommitdiff
path: root/src/server/session/agents/applied_session_agent.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/session/agents/applied_session_agent.ts')
-rw-r--r--src/server/session/agents/applied_session_agent.ts8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/server/session/agents/applied_session_agent.ts b/src/server/session/agents/applied_session_agent.ts
index 53293d3bf..48226dab6 100644
--- a/src/server/session/agents/applied_session_agent.ts
+++ b/src/server/session/agents/applied_session_agent.ts
@@ -1,6 +1,7 @@
import { isMaster } from "cluster";
import { Monitor } from "./monitor";
import { ServerWorker } from "./server_worker";
+import { Utils } from "../../../Utils";
export type ExitHandler = (reason: Error | boolean) => void | Promise<void>;
@@ -8,7 +9,7 @@ export abstract class AppliedSessionAgent {
// the following two methods allow the developer to create a custom
// session and use the built in customization options for each thread
- protected abstract async initializeMonitor(monitor: Monitor): Promise<void>;
+ protected abstract async initializeMonitor(monitor: Monitor, key: string): Promise<void>;
protected abstract async initializeServerWorker(): Promise<ServerWorker>;
private launched = false;
@@ -21,7 +22,7 @@ export abstract class AppliedSessionAgent {
private sessionMonitorRef: Monitor | undefined;
public get sessionMonitor(): Monitor {
if (!isMaster) {
- this.serverWorker.sendMonitorAction("kill", {
+ this.serverWorker.emitToMonitor("kill", {
graceful: false,
reason: "Cannot access the session monitor directly from the server worker thread.",
errorCode: 1
@@ -43,7 +44,8 @@ export abstract class AppliedSessionAgent {
if (!this.launched) {
this.launched = true;
if (isMaster) {
- await this.initializeMonitor(this.sessionMonitorRef = Monitor.Create());
+ const sessionKey = Utils.GenerateGuid();
+ await this.initializeMonitor(this.sessionMonitorRef = Monitor.Create(sessionKey), sessionKey);
this.sessionMonitorRef.finalize();
} else {
this.serverWorkerRef = await this.initializeServerWorker();