repositories
/
poolifier.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix: fix possible null exception with worker_threads pools
[poolifier.git]
/
src
/
pools
/
thread
/
fixed.ts
diff --git
a/src/pools/thread/fixed.ts
b/src/pools/thread/fixed.ts
index ddda04b113ec9028b0cd24c8f53001d12714a901..28f8fceba679e5f9053820b8436583caf69f20af 100644
(file)
--- a/
src/pools/thread/fixed.ts
+++ b/
src/pools/thread/fixed.ts
@@
-70,6
+70,7
@@
export class FixedThreadPool<
})
await this.sendKillMessageToWorker(workerNodeKey)
workerNode.closeChannel()
})
await this.sendKillMessageToWorker(workerNodeKey)
workerNode.closeChannel()
+ workerNode.removeAllListeners()
await worker.terminate()
await waitWorkerExit
}
await worker.terminate()
await waitWorkerExit
}
@@
-80,9
+81,7
@@
export class FixedThreadPool<
message: MessageValue<Data>,
transferList?: TransferListItem[]
): void {
message: MessageValue<Data>,
transferList?: TransferListItem[]
): void {
- (
- this.workerNodes[workerNodeKey]?.messageChannel as MessageChannel
- )?.port1?.postMessage(
+ this.workerNodes[workerNodeKey].messageChannel?.port1?.postMessage(
{ ...message, workerId: this.getWorkerInfo(workerNodeKey).id },
transferList
)
{ ...message, workerId: this.getWorkerInfo(workerNodeKey).id },
transferList
)
@@
-108,9
+107,10
@@
export class FixedThreadPool<
workerNodeKey: number,
listener: (message: MessageValue<Message>) => void
): void {
workerNodeKey: number,
listener: (message: MessageValue<Message>) => void
): void {
- (
- this.workerNodes[workerNodeKey]?.messageChannel as MessageChannel
- ).port1.on('message', listener)
+ this.workerNodes[workerNodeKey].messageChannel?.port1?.on(
+ 'message',
+ listener
+ )
}
/** @inheritDoc */
}
/** @inheritDoc */
@@
-118,9
+118,10
@@
export class FixedThreadPool<
workerNodeKey: number,
listener: (message: MessageValue<Message>) => void
): void {
workerNodeKey: number,
listener: (message: MessageValue<Message>) => void
): void {
- (
- this.workerNodes[workerNodeKey]?.messageChannel as MessageChannel
- ).port1.once('message', listener)
+ this.workerNodes[workerNodeKey].messageChannel?.port1?.once(
+ 'message',
+ listener
+ )
}
/** @inheritDoc */
}
/** @inheritDoc */
@@
-128,9
+129,10
@@
export class FixedThreadPool<
workerNodeKey: number,
listener: (message: MessageValue<Message>) => void
): void {
workerNodeKey: number,
listener: (message: MessageValue<Message>) => void
): void {
- (
- this.workerNodes[workerNodeKey]?.messageChannel as MessageChannel
- ).port1.off('message', listener)
+ this.workerNodes[workerNodeKey].messageChannel?.port1?.off(
+ 'message',
+ listener
+ )
}
/** @inheritDoc */
}
/** @inheritDoc */