View Source Reactive.Supervisor (Reactive State v0.2.3)
Default DynamicSupervisor to manage task creation and garbage collection.
Summary
Functions
Returns a specification to start this module under a supervisor.
Start the supervisor if needed (not recommended)
Garbage collect processes for a supervisor (Reactive.Supervisor by default)
Trigger computations for any stale reactive processes who have the option proactive: true
Functions
Returns a specification to start this module under a supervisor.
See Supervisor
.
Start the supervisor if needed (not recommended)
Garbage collect processes for a supervisor (Reactive.Supervisor by default)
Options:
- name: [pid or alias] (default:
Reactive.Supervisor
) - strategy: :counter (default
:counter
) - count: [integer] (default
nil
) - random: [boolean] (default
false
)
Example:
iex> use Reactive
iex> Reactive.Supervisor.ensure_started()
iex> ref = Ref.new(0)
iex> Reactive.Supervisor.gc()
iex> nil == Reactive.resolve_process(ref)
Reactive processes can be protected with the gc
option:
iex> use Reactive
iex> Reactive.Supervisor.ensure_started()
iex> ref = Ref.new(0, gc: false)
iex> Reactive.Supervisor.gc()
iex> ^ref = Reactive.resolve_process(ref)
iex> use Reactive
iex> Reactive.Supervisor.ensure_started()
iex> ref = reactive gc: false do
...> # some expensive computation
...> end
iex> Reactive.Supervisor.gc()
iex> ^ref = Reactive.resolve_process(ref)
Trigger computations for any stale reactive processes who have the option proactive: true
Example:
iex> use Reactive
iex> Reactive.Supervisor.ensure_started()
iex> num = Ref.new(0)
iex> ref =
...> reactive proactive: true do
...> get(num) + 1
...> end
iex> Reactive.get_cached(ref)
1
iex> Ref.set(num, 1)
iex> Reactive.Supervisor.trigger_proactive()
iex> Reactive.get_cached(ref)
2