diff --git a/packages/core/src/runtime/actor.ts b/packages/core/src/runtime/actor.ts index 929f7d8..3723668 100644 --- a/packages/core/src/runtime/actor.ts +++ b/packages/core/src/runtime/actor.ts @@ -138,8 +138,12 @@ export class Actor { return this._dataflowGraph; } - atExit(a: LocalAction): void { + atExit(a: LocalAction): () => void { this.exitHooks.push(a); + return () => { + const i = this.exitHooks.indexOf(a); + if (i !== -1) this.exitHooks.splice(i, 1); + }; } _terminateWith(reason: Exclude) {