Packages

BlockingQueue is a simple queue implemented as a GenServer. It has a fixed maximum length established when it is created.

Current section

Files

Jump to
blocking_queue lib collectable.ex
Raw

lib/collectable.ex

defimpl Collectable, for: BlockingQueue do
def into(%BlockingQueue{pid: pid}), do: {nil, &into(pid, &1, &2) }
defp into(pid, _, {:cont, item}), do: BlockingQueue.push(pid, item)
defp into(pid, _, :done), do: %BlockingQueue{pid: pid}
defp into(_, _, :halt), do: :ok
end