Hyperlinkv0.8.0-beta.28

Queue

Queue.unboundedconsteffect/Queue.ts:599
<A, E = never>(): Effect<Queue<A, E>>

Creates an unbounded queue that can grow to any size without blocking producers.

When to use

Use when you need producers to add messages without backpressure and accept unbounded memory growth.

Example (Creating unbounded queues)

import { Effect, Queue } from "effect"

const program = Effect.gen(function*() {
  const queue = yield* Queue.unbounded<string>()

  // Producers can always add messages without blocking
  yield* Queue.offer(queue, "message1")
  yield* Queue.offer(queue, "message2")
  yield* Queue.offerAll(queue, ["message3", "message4", "message5"])

  // Check current size
  const size = yield* Queue.size(queue)
  console.log(size) // 5

  // Take all messages
  const messages = yield* Queue.takeAll(queue)
  console.log(messages) // ["message1", "message2", "message3", "message4", "message5"]
})
constructors
Source effect/Queue.ts:5991 lines
export const unbounded = <A, E = never>(): Effect<Queue<A, E>> => make()