start method
Starts something.
If it is called when isRunning is true it just returns future of a previous start.
You can use returned future in your implementation of start. The future will throw if stop is forced by setting force to true. The exception will be StopForcedException. If force will be false, future just completes. After calling stop isRunning becomes false.
Implementation
@mustCallSuper
ReadOnlyCompleter<void> start() {
if (_starterCompleter != null) {
return _starterCompleter!;
}
final completer = Completer<void>();
_starterCompleter = ReadOnlyCompleter<void>(completer);
return _starterCompleter!;
}