Xirsys.XTurn.Plugin.InstanceSupervisor (xturn v2.0.0)

Copy Markdown View Source

DynamicSupervisor for passive plugin GenServer instances.

What problem this solves

Passive plugins process relay frames out-of-band (disk I/O, external APIs) without blocking the relay hot path. Each allocation that attaches a passive plugin gets a temporary child under this supervisor; children restart is disabled (:temporary) because lifecycle is allocation-scoped.

Internal: started by Plugin.Lifecycle via start_instance/3. Returns the child pid, shared inflight atomics ref, and max_inflight limit for Plugin.Dispatch back-pressure.

RFCs

  • RFC 5766 (TURN relay frames delivered to passive plugins)

Summary

Functions

Returns a specification to start this module under a supervisor.

Starts a passive plugin instance for allocation.

Starts the instance supervisor (registered as __MODULE__).

Functions

child_spec(arg)

Returns a specification to start this module under a supervisor.

See Supervisor.

start_instance(mod, allocation, opts)

Starts a passive plugin instance for allocation.

Returns {:ok, pid, atomics_ref, max_inflight}, :ignore, or {:error, reason}.

start_link(opts \\ [])

Starts the instance supervisor (registered as __MODULE__).