markResumed method

  1. @override
Future<void> markResumed(
  1. String runId, {
  2. Map<String, Object?>? data,
})
override

Marks a run as resumed, optionally merging resume data.

Implementation

@override
/// Marks a run as resumed, optionally merging resume data.
Future<void> markResumed(String runId, {Map<String, Object?>? data}) async {
  final state = _runs[runId];
  if (state == null) return;
  _removeWatcherForRun(runId);
  _runs[runId] = state.copyWith(
    status: WorkflowStatus.running,
    resumeAt: null,
    waitTopic: null,
    suspensionData: _freezeNullable(data) ?? const <String, Object?>{},
    updatedAt: _clock.now(),
  );
  for (final entry in _due.values) {
    entry.remove(runId);
  }
  final emptyTopics = <String>[];
  _suspendedTopics.forEach((topic, set) {
    set.remove(runId);
    if (set.isEmpty) {
      emptyTopics.add(topic);
    }
  });
  emptyTopics.forEach(_suspendedTopics.remove);
}