(
iterable: Iterable<A>,
queue: Queue.BackingQueue<A>,
takers: MutableQueue.MutableQueue<Deferred.Deferred<A>>,
isShutdown: MutableRef.MutableRef<boolean>
)
| 567 | } |
| 568 | |
| 569 | handleSurplus( |
| 570 | iterable: Iterable<A>, |
| 571 | queue: Queue.BackingQueue<A>, |
| 572 | takers: MutableQueue.MutableQueue<Deferred.Deferred<A>>, |
| 573 | isShutdown: MutableRef.MutableRef<boolean> |
| 574 | ): Effect.Effect<boolean> { |
| 575 | return core.withFiberRuntime((state) => { |
| 576 | const deferred = core.deferredUnsafeMake<boolean>(state.id()) |
| 577 | return pipe( |
| 578 | core.suspend(() => { |
| 579 | this.unsafeOffer(iterable, deferred) |
| 580 | this.unsafeOnQueueEmptySpace(queue, takers) |
| 581 | unsafeCompleteTakers(this, queue, takers) |
| 582 | return MutableRef.get(isShutdown) ? core.interrupt : core.deferredAwait(deferred) |
| 583 | }), |
| 584 | core.onInterrupt(() => core.sync(() => this.unsafeRemove(deferred))) |
| 585 | ) |
| 586 | }) |
| 587 | } |
| 588 | |
| 589 | unsafeOnQueueEmptySpace( |
| 590 | queue: Queue.BackingQueue<A>, |
nothing calls this directly
no test coverage detected