start method

  1. @override
Future<void> start(
  1. String name,
  2. RuntimeConfig config
)

Creates a new session named name with config. Completes when the process is spawned and its RuntimeEvent.sessionStarted has been emitted. Throws SessionAlreadyExists if a live session already holds name.

Implementation

@override
Future<void> start(String name, RuntimeConfig config) async {
  started.add((name: name, config: config));
  if (startGate != null) await startGate!.future;
  final t = throwOnStart;
  if (t != null) {
    throwOnStart = null;
    throw t;
  }
  // The spawn LANDED — only now does the transport hold the session, and the
  // new incarnation clears any stale prior terminal (the terminalOf release
  // contract).
  _terminals.remove(name);
  _live.add(name);
}