From 33ac3085647bf71df292cb5998686d6f651d9ad7 Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Sun, 12 Dec 2021 23:02:51 +0100 Subject: [PATCH] Allow access to new Actor handle on spawn (is this safe?) --- packages/core/src/runtime/actor.ts | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/packages/core/src/runtime/actor.ts b/packages/core/src/runtime/actor.ts index 7ca9092..d81227f 100644 --- a/packages/core/src/runtime/actor.ts +++ b/packages/core/src/runtime/actor.ts @@ -326,12 +326,12 @@ export class Turn { } // Alias for syndicatec code generator to use - _spawn(bootProc: LocalAction, initialAssertions = new IdentitySet()): void { - this.spawn(bootProc, initialAssertions); + _spawn(bootProc: LocalAction, initialAssertions = new IdentitySet()): Actor { + return this.spawn(bootProc, initialAssertions); } - spawn(bootProc: LocalAction, initialAssertions = new IdentitySet()): void { - this.__spawn(bootProc, initialAssertions); + spawn(bootProc: LocalAction, initialAssertions = new IdentitySet()): Actor { + return this.__spawn(bootProc, initialAssertions); } __spawn(bootProc: LocalAction, initialAssertions = new IdentitySet()): Actor { @@ -348,15 +348,16 @@ export class Turn { } // Alias for syndicatec code generator to use - _spawnLink(bootProc: LocalAction, initialAssertions = new IdentitySet()): void { - this.spawnLink(bootProc, initialAssertions); + _spawnLink(bootProc: LocalAction, initialAssertions = new IdentitySet()): Actor | null { + return this.spawnLink(bootProc, initialAssertions); } - spawnLink(bootProc: LocalAction, initialAssertions = new IdentitySet()): void { - if (!this.activeFacet.isLive) return; + spawnLink(bootProc: LocalAction, initialAssertions = new IdentitySet()): Actor | null { + if (!this.activeFacet.isLive) return null; const newActor = this.__spawn(bootProc, initialAssertions); this.activeFacet._halfLink(newActor.root); newActor.root._halfLink(this.activeFacet); + return newActor; } stopActor(): void {