generalize run type

master
fuwa 5 years ago
parent 10f37cf6fd
commit 6535ec1d7c

@ -30,13 +30,14 @@ import '../helper.dart';
import '../../config.dart' as config; import '../../config.dart' as config;
import '../../logging.dart'; import '../../logging.dart';
typedef IsExitingFunc = bool Function(); typedef ShouldExit = bool Function();
Stream<String> runBinary Stream<String> runBinary
( (
final String name, final String name,
final IsExitingFunc isExiting, { final Stream<String> input,
{final Stream<String> input} final ShouldExit shouldExit,
}
) async* { ) async* {
final newPath = await getBinaryPath(name); final newPath = await getBinaryPath(name);
@ -85,9 +86,11 @@ Stream<String> runBinary
if (config.isEmu) return; if (config.isEmu) return;
if (!isExiting()) { if (shouldExit != null) {
log.warning('process is ded'); if (!shouldExit()) {
exit(1); log.warning('process is ded');
exit(1);
}
} }
log.info('Daemon exited gracefully.'); log.info('Daemon exited gracefully.');

@ -130,7 +130,7 @@ class _CyberWOW_PageState extends State<CyberWOW_Page> with WidgetsBindingObserv
SyncingState _syncingState = await _loadingState.next(loading, ''); SyncingState _syncingState = await _loadingState.next(loading, '');
final syncing = process final syncing = process
.runBinary(binName, _isExiting, input: inputStreamController.stream) .runBinary(binName, input: inputStreamController.stream, shouldExit: _isExiting)
.asBroadcastStream(); .asBroadcastStream();
HookedState _syncedNextState = await _syncingState.next(inputStreamController.sink, syncing); HookedState _syncedNextState = await _syncingState.next(inputStreamController.sink, syncing);

Loading…
Cancel
Save