emit method

void emit(
  1. RuntimeEvent event
)

Emits event to subscribers (after a microtask, like a real stream). A terminal (Exited/Died) is LATCHED as retained state BEFORE the emission and deregisters the live session — exactly the real provider's _emitExit shape, so a zero-listener emission stays queryable through terminalOf.

Implementation

void emit(RuntimeEvent event) {
  switch (event) {
    case Exited() || Died():
      _terminals[event.name] = event;
      _live.remove(event.name);
    case SessionStarted() || Respawned() || ActivityChanged():
      break;
  }
  _events.add(event);
}