A registration with GraphRuntime.subscribe or RunHandle.subscribe. It is scoped to a thread, not a run: it keeps delivering the events of every later run on the same thread, and its dispatcher - a virtual thread, parked while there is nothing to deliver - lives until cancel is called or the subscription is disconnected. Cancel every subscription you no longer need.
It delivers the durable events of every commit on the thread, made through the GraphRuntime it was made on or through any other runtime or process sharing the same Checkpointer: the latter it reads from the store as they land (WatchPolicy). Live progress events reach it only from runs of its own runtime, because they are never stored.
Stops the subscription's dispatcher. A listener call already running is interrupted and waited for, so once this returns no call is in progress and none will start - not even StreamEvent.Disconnected. It therefore blocks for as long as a running listener ignores its interrupt, and two listeners that each cancel the other's subscription can deadlock. Called from the listener itself, it neither interrupts nor waits: it returns at once and the dispatcher stops when the call returns.
Stops the subscription's dispatcher. A listener call already running is interrupted and waited for, so once this returns no call is in progress and none will start - not even StreamEvent.Disconnected. It therefore blocks for as long as a running listener ignores its interrupt, and two listeners that each cancel the other's subscription can deadlock. Called from the listener itself, it neither interrupts nor waits: it returns at once and the dispatcher stops when the call returns.