anchor.diff:          restartTimer.elapsed.inMilliseconds);
       flutterUsage.sendEvent('hot', 'restart', parameters: analyticsParameters);
       flutterUsage.sendTiming('hot', 'restart', restartTimer.elapsed);
  +
  +    // In benchmark mode, make sure all stream notifications have finished.
  +    if (benchmarkMode) {
  +      final List<Future<void>> isolateNotifications = <Future<void>>[];
  +      for (FlutterDevice device in flutterDevices) {
  +        for (FlutterView view in device.views) {
  +          isolateNotifications.add(
  +            view.owner.vm.vmService.onIsolateEvent.then((Stream<ServiceEvent> serviceEvents) async {
  +              await for (ServiceEvent serviceEvent in serviceEvents) {
  +                if (serviceEvent.owner.name.contains('_spawn') && serviceEvent.kind == ServiceEvent.kIsolateExit) {
  +                  return;
  +                }
  +              }
  +            }),
  +          );
  +        }
  +      }
  +      await Future.wait(isolateNotifications);
  +    }
       return OperationResult.ok;
     }
   
  
positive.code:     }
    }
  
    Future<OperationResult> _reloadSources({ bool pause = false, String reason, void Function(String message) onSlow }) async {
      final Map<String, String> analyticsParameters = <String, String>{};
      if (reason != null) {
        analyticsParameters[kEventReloadReasonParameterName] = reason;
  
negative.code: 
    }
  
    Future<OperationResult> _restartFromSources({ String reason, bool benchmarkMode = false }) async {
      final Map<String, String> analyticsParameters =
        reason == null
          ? null
  