Agent.update

You're seeing just the function update, go back to Agent module for more information.
Link to this function

update(agent, fun, timeout \\ 5000)

View Source

Specs

update(agent(), (state() -> state()), timeout()) :: :ok

Updates the agent state via the given anonymous function.

The function fun is sent to the agent which invokes the function passing the agent state. The return value of fun becomes the new state of the agent.

This function always returns :ok.

timeout is an integer greater than zero which specifies how many milliseconds are allowed before the agent executes the function and returns the result value, or the atom :infinity to wait indefinitely. If no result is received within the specified time, the function call fails and the caller exits.

Examples

iex> {:ok, pid} = Agent.start_link(fn -> 42 end)
iex> Agent.update(pid, fn state -> state + 1 end)
:ok
iex> Agent.get(pid, fn state -> state end)
43
Link to this function

update(agent, module, fun, args, timeout \\ 5000)

View Source

Specs

update(agent(), module(), atom(), [term()], timeout()) :: :ok

Updates the agent state via the given function.

Same as update/3 but a module, function, and arguments are expected instead of an anonymous function. The state is added as first argument to the given list of arguments.

Examples

iex> {:ok, pid} = Agent.start_link(fn -> 42 end)
iex> Agent.update(pid, Kernel, :+, [12])
:ok
iex> Agent.get(pid, fn state -> state end)
54