AgentSessionManager.Runtime.RunQueue (AgentSessionManager v0.8.0)

Copy Markdown View Source

Pure FIFO run queue with a configurable maximum size.

This is a pure data structure (no processes) used by the runtime SessionServer to implement strict sequential queue draining.

Summary

Types

t()

@type t() :: %AgentSessionManager.Runtime.RunQueue{
  max_queued_runs: pos_integer(),
  queue: :queue.queue(String.t()),
  size: non_neg_integer()
}

Functions

dequeue(queue)

@spec dequeue(t()) :: {:ok, String.t(), t()} | {:empty, t()}

enqueue(queue, run_id)

@spec enqueue(t(), String.t()) :: {:ok, t()} | {:error, :queue_full}

new(opts \\ [])

@spec new(keyword()) :: t()

remove(queue, run_id)

@spec remove(t(), String.t()) :: {:ok, t()} | {:error, :not_found}

size(queue)

@spec size(t()) :: non_neg_integer()

to_list(queue)

@spec to_list(t()) :: [String.t()]