MCPcopy Create free account
hub / github.com/Effect-TS/effect / unsafeStrategyCompletePollers

Function unsafeStrategyCompletePollers

packages/effect/src/internal/pubsub.ts:1623–1650  ·  view source on GitHub ↗
(
  strategy: PubSubStrategy<A>,
  pubsub: AtomicPubSub<A>,
  subscribers: Subscribers<A>,
  subscription: Subscription<A>,
  pollers: MutableQueue.MutableQueue<Deferred.Deferred<A>>
)

Source from the content-addressed store, hash-verified

1621
1622/** @internal */
1623const 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 */
1653const unsafeStrategyCompleteSubscribers = <A>(

Callers 3

unsafeCompletePollersMethod · 0.85
unsafeCompletePollersMethod · 0.85
unsafeCompletePollersMethod · 0.85

Calls 9

removeSubscribersFunction · 0.85
addSubscribersFunction · 0.85
unsafePollAllQueueFunction · 0.85
pipeFunction · 0.70
unsafeOfferAllFunction · 0.70
unsafeCompleteDeferredFunction · 0.70
isEmptyMethod · 0.65
pollMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…