recordSignals<T> function

(Set<AbstractSignal>, T) recordSignals<T>(
  1. T function()
)

Implementation

(Set<AbstractSignal<dynamic>> signals, T result) recordSignals<T>(T Function() function) {
  final previousRecorder = _signalRecorder;
  _signalRecorder = StreamController(sync: true);
  final recordedSignals = <AbstractSignal<dynamic>>{};
  final subscription = _signalRecorder!.stream.listen((signal) {
    if (!suppressRecording) {
      recordedSignals.add(signal);
    }
  });

  var doingBuildThroughSc1 = _debugDoingBuildThroughSc1;
  assert(run(() {
    _debugDoingBuildThroughSc1 = true;
    return true;
  }));

  T result;
  try {
    result = function();
  } finally {
    subscription.cancel();
    _signalRecorder = previousRecorder;

    assert(run(() {
      _debugDoingBuildThroughSc1 = doingBuildThroughSc1;
      return true;
    }));
  }

  return (recordedSignals, result);
}