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

Method handleSurplus

packages/effect/src/PubSub.ts:2372–2390  ·  view source on GitHub ↗
(
    pubsub: PubSub.Atomic<A>,
    subscribers: PubSub.Subscribers<A>,
    elements: Iterable<A>,
    isShutdown: MutableRef.MutableRef<boolean>
  )

Source from the content-addressed store, hash-verified

2370 }
2371
2372 handleSurplus(
2373 pubsub: PubSub.Atomic<A>,
2374 subscribers: PubSub.Subscribers<A>,
2375 elements: Iterable<A>,
2376 isShutdown: MutableRef.MutableRef<boolean>
2377 ): Effect.Effect<boolean> {
2378 return Effect.suspend(() => {
2379 const deferred = Deferred.makeUnsafe<boolean>()
2380 this.offerUnsafe(elements, deferred)
2381 this.onPubSubEmptySpaceUnsafe(pubsub, subscribers)
2382 this.completeSubscribersUnsafe(pubsub, subscribers)
2383 return (MutableRef.get(isShutdown) ? Effect.interrupt : Deferred.await(deferred)).pipe(
2384 Effect.onInterrupt(() => {
2385 this.removeUnsafe(deferred)
2386 return Effect.void
2387 })
2388 )
2389 })
2390 }
2391
2392 onPubSubEmptySpaceUnsafe(
2393 pubsub: PubSub.Atomic<A>,

Callers

nothing calls this directly

Calls 8

offerUnsafeMethod · 0.95
removeUnsafeMethod · 0.95
onInterruptMethod · 0.80
pipeMethod · 0.65
getMethod · 0.65
awaitMethod · 0.65

Tested by

no test coverage detected