From 6535ec1d7cf4aa8cdfda8d3692502fd44b2d612a Mon Sep 17 00:00:00 2001 From: fuwa Date: Mon, 18 Nov 2019 02:19:24 +0800 Subject: [PATCH] generalize run type --- cyberwow/lib/controller/process/run.dart | 15 +++++++++------ cyberwow/lib/main.dart | 2 +- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/cyberwow/lib/controller/process/run.dart b/cyberwow/lib/controller/process/run.dart index 3b8405e..3efb013 100644 --- a/cyberwow/lib/controller/process/run.dart +++ b/cyberwow/lib/controller/process/run.dart @@ -30,13 +30,14 @@ import '../helper.dart'; import '../../config.dart' as config; import '../../logging.dart'; -typedef IsExitingFunc = bool Function(); +typedef ShouldExit = bool Function(); Stream runBinary ( final String name, - final IsExitingFunc isExiting, - {final Stream input} + { final Stream input, + final ShouldExit shouldExit, + } ) async* { final newPath = await getBinaryPath(name); @@ -85,9 +86,11 @@ Stream runBinary if (config.isEmu) return; - if (!isExiting()) { - log.warning('process is ded'); - exit(1); + if (shouldExit != null) { + if (!shouldExit()) { + log.warning('process is ded'); + exit(1); + } } log.info('Daemon exited gracefully.'); diff --git a/cyberwow/lib/main.dart b/cyberwow/lib/main.dart index 35a8dc1..325bf38 100644 --- a/cyberwow/lib/main.dart +++ b/cyberwow/lib/main.dart @@ -130,7 +130,7 @@ class _CyberWOW_PageState extends State with WidgetsBindingObserv SyncingState _syncingState = await _loadingState.next(loading, ''); final syncing = process - .runBinary(binName, _isExiting, input: inputStreamController.stream) + .runBinary(binName, input: inputStreamController.stream, shouldExit: _isExiting) .asBroadcastStream(); HookedState _syncedNextState = await _syncingState.next(inputStreamController.sink, syncing);