MingaEditor.Renderer.ObservedBuffers (Minga v0.1.0)

Copy Markdown View Source

Renderer-local buffer monitor and consumed-version owner. Versions are retained only for currently monitored buffers. Exact :DOWN matching removes both the monitor reference and the recorded version, while stale :DOWN messages are ignored.

Summary

Types

t()

@type t() :: %MingaEditor.Renderer.ObservedBuffers{
  monitors: %{optional(pid()) => reference()},
  versions: %{optional(pid()) => non_neg_integer()}
}

Functions

monitored_versions(observed, versions)

@spec monitored_versions(t(), %{optional(pid()) => non_neg_integer()}) :: %{
  optional(pid()) => non_neg_integer()
}

new()

@spec new() :: t()

reconcile(observed, buffers)

@spec reconcile(t(), MapSet.t(pid())) :: t()

record_version(observed, buffer, version)

@spec record_version(t(), pid(), non_neg_integer()) :: t()

recorded_version(observed, buffer)

@spec recorded_version(t(), pid()) :: non_neg_integer() | nil