MCPcopy Index your code
hub / github.com/Effect-TS/effect / handleSurplus

Method handleSurplus

packages/effect/src/internal/queue.ts:569–587  ·  view source on GitHub ↗
(
    iterable: Iterable<A>,
    queue: Queue.BackingQueue<A>,
    takers: MutableQueue.MutableQueue<Deferred.Deferred<A>>,
    isShutdown: MutableRef.MutableRef<boolean>
  )

Source from the content-addressed store, hash-verified

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>,

Callers

nothing calls this directly

Calls 7

unsafeOfferMethod · 0.95
unsafeRemoveMethod · 0.95
syncMethod · 0.80
pipeFunction · 0.70
idMethod · 0.65
getMethod · 0.65

Tested by

no test coverage detected