| 154 | const awaiter = Deferred.unsafeMake<void>(FiberId.none) |
| 155 | const program = Effect.gen(function*() { |
| 156 | const stream = (deferred: Deferred.Deferred<void, never>, ref: Ref.Ref<ReadonlyArray<string>>) => |
| 157 | Effect.acquireRelease( |
| 158 | Ref.update(ref, (array) => [...array, "acquire outer"]), |
| 159 | () => Ref.update(ref, (array) => [...array, "release outer"]) |
| 160 | ).pipe( |
| 161 | Effect.zipRight(Deferred.succeed(deferred, void 0)), |
| 162 | Effect.zipRight(Deferred.await(awaiter)), |
| 163 | Effect.zipRight(Effect.succeed(Stream.make(1, 2, 3))), |
| 164 | Stream.unwrapScoped |
| 165 | ) |
| 166 | const ref = yield* Ref.make<ReadonlyArray<string>>([]) |
| 167 | const deferred = yield* Deferred.make<void>() |
| 168 | const fiber = yield* stream(deferred, ref).pipe(Stream.runDrain, Effect.fork) |