mirror of
https://github.com/koush/scrypted.git
synced 2026-09-19 10:10:39 +01:00
server: watch for worker errors
This commit is contained in:
@@ -35,10 +35,17 @@ export class NodeForkWorker extends ChildProcessWorker {
|
||||
}
|
||||
|
||||
send(message: RpcMessage, reject?: (e: Error) => void): void {
|
||||
this.worker.send(message, undefined, e => {
|
||||
if (e && reject)
|
||||
reject(e);
|
||||
});
|
||||
try {
|
||||
if (!this.worker)
|
||||
throw new Error('worked has been killed');
|
||||
this.worker.send(message, undefined, e => {
|
||||
if (e && reject)
|
||||
reject(e);
|
||||
});
|
||||
}
|
||||
catch (e) {
|
||||
reject?.(e);
|
||||
}
|
||||
}
|
||||
|
||||
get pid() {
|
||||
|
||||
@@ -60,6 +60,8 @@ export class NodeThreadWorker extends EventEmitter implements RuntimeWorker {
|
||||
|
||||
send(message: RpcMessage, reject?: (e: Error) => void): void {
|
||||
try {
|
||||
if (!this.worker)
|
||||
throw new Error('worked has been killed');
|
||||
this.worker.postMessage(v8.serialize(message));
|
||||
}
|
||||
catch (e) {
|
||||
|
||||
@@ -55,6 +55,13 @@ export class PythonRuntimeWorker extends ChildProcessWorker {
|
||||
}
|
||||
|
||||
send(message: RpcMessage, reject?: (e: Error) => void): void {
|
||||
(this.worker.stdio[3] as Writable).write(JSON.stringify(message) + '\n', e => e && reject?.(e));
|
||||
try {
|
||||
if (!this.worker)
|
||||
throw new Error('worked has been killed');
|
||||
(this.worker.stdio[3] as Writable).write(JSON.stringify(message) + '\n', e => e && reject?.(e));
|
||||
}
|
||||
catch (e) {
|
||||
reject?.(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user