effect-io-ai

Package: effect
Module: Queue

Queue.unbounded

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"]
})

Signature

declare const unbounded: <A, E = never>() => Effect<Queue<A, E>>

Source

Since v2.0.0