Locker.Fsm
A utility module that helps in creating :gen_fsm processes that
are registered in locker. Options are similar to the ones with
Locker.Server.
Example
You can create a standard :gen_fsm process that is registered
under locker like this:
defmodule MyFsm do
use Locker.Fsm, lease_length: 10000
def init(_) do
{:ok, :initial_state, %{}}
end
end
Similar to Locker.Server, this module also implements start/2
and start_link/2 functions and if the opts contain a key name
the process will be registered by that name under Locker.Registry.
When overriding terminate/3 you will need to add call to
super(reason, statename, state) similarly to Locker.Server so
that the process will be properly unregistered during termination.