An opaque, process-owned Decibel session handle.
Session handles may only be used by their owner process. An in-progress
handshake may be transferred once with Decibel.handoff/2 and
Decibel.accept_handoff/1; acceptance creates a new handle for the target.
Calls from another process raise Decibel.SessionError with
reason: :not_owner, even after the owner closes the session or exits.
Session state lives until Decibel.close/1 is called or the owner process
exits, and the owner's operations on a closed handle use reason: :closed.
Their fields are private implementation details and must not be inspected,
altered, or constructed by callers. See Decibel's Ownership and
lifetime section for the complete concurrency, supervision, phase, and
lifecycle contract.
Summary
Types
@type phase() :: Decibel.SessionError.phase()
@opaque t()