# `ASM.Session.GuardSupervisor`
[🔗](https://github.com/nshkrdotcom/agent_session_manager/blob/v0.15.0/lib/asm/session/guard_supervisor.ex#L1)

Dynamic supervisor for `ASM.Session.OwnerGuard` processes.

Guards are siblings of the session subtrees they watch, never children of
them, so terminating a subtree never terminates the process performing the
termination.

# `child_spec`

Returns a specification to start this module under a supervisor.

See `Supervisor`.

# `guard`

```elixir
@spec guard(GenServer.server(), String.t(), pid(), pid()) ::
  DynamicSupervisor.on_start_child()
```

Starts a guard that stops `session_id` when `owner` goes down.

# `start_link`

```elixir
@spec start_link(keyword()) :: Supervisor.on_start()
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
