Hyperlinkv0.8.0-beta.28

TxPubSub

TxPubSub.acquireSubscriberconsteffect/TxPubSub.ts:528
<A>(self: TxPubSub<A>): Effect.Effect<
  TxQueue.TxQueue<A>,
  never,
  Effect.Transaction
>

Creates a subscriber queue and registers it with the pub/sub.

When to use

Use to create and register a subscriber queue inside a larger transaction when registration must be atomic with other Tx operations.

Details

This is the transactional acquire step of subscribe, exposed so that callers can compose it with other Tx operations in a single transaction, such as TxSubscriptionRef.changes.

export const acquireSubscriber = <A>(
  self: TxPubSub<A>
): Effect.Effect<TxQueue.TxQueue<A>, never, Effect.Transaction> =>
  Effect.gen(function*() {
    const queue = yield* makeSubscriberQueue<A>(self.strategy, self.capacity)
    yield* TxRef.update(self.subscribersRef, (subs) => [...subs, queue])
    return queue
  })
Referenced by 2 symbols