From b5473bf0f3aaf725e6ebc70d6deee4fac51ce31c Mon Sep 17 00:00:00 2001 From: Tim Date: Sat, 1 Jun 2024 23:20:51 +1200 Subject: [PATCH] fix fork semantics --- packages/effect/src/Micro.ts | 8 ++++---- packages/effect/test/Micro.test.ts | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/effect/src/Micro.ts b/packages/effect/src/Micro.ts index 8840a6fb4e4..125bc32f088 100644 --- a/packages/effect/src/Micro.ts +++ b/packages/effect/src/Micro.ts @@ -2543,12 +2543,12 @@ export const fork = (self: Micro): Micro, never, map[currentAbortSignal.key] = handle._controller.signal return map }) - Promise.resolve().then(() => { + yieldAdd(() => { self[runSymbol](nextEnv, (result) => { handle.emit(result) }) - onResult(Either.right(handle)) }) + onResult(Either.right(handle)) }) /** @@ -2564,12 +2564,12 @@ export const forkDaemon = (self: Micro): Micro, n map[currentAbortSignal.key] = controller.signal return map }) - Promise.resolve().then(() => { + yieldAdd(() => { self[runSymbol](nextEnv, (result) => { handle.emit(result) }) - onResult(Either.right(handle)) }) + onResult(Either.right(handle)) }) // ---------------------------------------------------------------------------- diff --git a/packages/effect/test/Micro.test.ts b/packages/effect/test/Micro.test.ts index c15928856d4..b1d942f0886 100644 --- a/packages/effect/test/Micro.test.ts +++ b/packages/effect/test/Micro.test.ts @@ -265,6 +265,7 @@ describe.sequential("Micro", () => { release = true }) ).pipe(Micro.scoped, Micro.fork) + yield* Micro.yieldNow handle.unsafeAbort() yield* handle.await assert.strictEqual(release, true) @@ -468,8 +469,7 @@ describe.sequential("Micro", () => { Micro.gen(function*() { const error = yield* new TestError().pipe(Micro.flip) assert.deepStrictEqual(error, new TestError()) - assert.include(error.stack, "Micro.test.ts:469") - console.log(error.stack) + assert.include(error.stack, "Micro.test.ts:470") })) it.effect("is a valid Effect", () =>