( strategy: PubSubStrategy<A>, pubsub: AtomicPubSub<A>, subscribers: Subscribers<A>, subscription: Subscription<A>, pollers: MutableQueue.MutableQueue<Deferred.Deferred<A>> )
| 1621 | |
| 1622 | /** @internal */ |
| 1623 | const unsafeStrategyCompletePollers = <A>( |
| 1624 | strategy: PubSubStrategy<A>, |
| 1625 | pubsub: AtomicPubSub<A>, |
| 1626 | subscribers: Subscribers<A>, |
| 1627 | subscription: Subscription<A>, |
| 1628 | pollers: MutableQueue.MutableQueue<Deferred.Deferred<A>> |
| 1629 | ): void => { |
| 1630 | let keepPolling = true |
| 1631 | while (keepPolling && !subscription.isEmpty()) { |
| 1632 | const poller = pipe(pollers, MutableQueue.poll(MutableQueue.EmptyMutableQueue)) |
| 1633 | if (poller === MutableQueue.EmptyMutableQueue) { |
| 1634 | pipe(subscribers, removeSubscribers(subscription, pollers)) |
| 1635 | if (MutableQueue.isEmpty(pollers)) { |
| 1636 | keepPolling = false |
| 1637 | } else { |
| 1638 | pipe(subscribers, addSubscribers(subscription, pollers)) |
| 1639 | } |
| 1640 | } else { |
| 1641 | const pollResult = subscription.poll(MutableQueue.EmptyMutableQueue) |
| 1642 | if (pollResult === MutableQueue.EmptyMutableQueue) { |
| 1643 | unsafeOfferAll(pollers, pipe(unsafePollAllQueue(pollers), Chunk.prepend(poller))) |
| 1644 | } else { |
| 1645 | unsafeCompleteDeferred(poller, pollResult) |
| 1646 | strategy.unsafeOnPubSubEmptySpace(pubsub, subscribers) |
| 1647 | } |
| 1648 | } |
| 1649 | } |
| 1650 | } |
| 1651 | |
| 1652 | /** @internal */ |
| 1653 | const unsafeStrategyCompleteSubscribers = <A>( |
no test coverage detected
searching dependent graphs…