finish method

void finish({
  1. Map? arguments,
})

Finish the last synchronous operation that was started. Optionally takes a Map of arguments.

Implementation

void finish({Map? arguments}) {
  if (!_hasTimeline) {
    return;
  }
  if (_stack.length == 0) {
    throw new StateError('Uneven calls to start and finish');
  }
  if (_filterKey != null) {
    arguments ??= {};
    arguments[_kFilterKey] = _filterKey;
  }
  // Pop top item off of stack.
  var block = _stack.removeLast();
  if (block == null) {
    // Dart stream was disabled when start was called.
    return;
  }
  block._finish(arguments);
}