Confirm xmrig startup before reporting failure
This commit is contained in:
@@ -69,10 +69,11 @@ class MiningController extends StateNotifier<MiningState> {
|
||||
return _runAction(() async {
|
||||
final config = _buildLaunchConfig();
|
||||
final started = await _service.start(config: config);
|
||||
if (!started) {
|
||||
await refresh();
|
||||
final confirmed = await _confirmRunning(config);
|
||||
if (!started && !confirmed) {
|
||||
throw StateError('Failed to start miner');
|
||||
}
|
||||
await refresh();
|
||||
return true;
|
||||
});
|
||||
}
|
||||
@@ -93,10 +94,11 @@ class MiningController extends StateNotifier<MiningState> {
|
||||
return _runAction(() async {
|
||||
final config = _buildLaunchConfig();
|
||||
final restarted = await _service.restart(config: config);
|
||||
if (!restarted) {
|
||||
await refresh();
|
||||
final confirmed = await _confirmRunning(config);
|
||||
if (!restarted && !confirmed) {
|
||||
throw StateError('Failed to restart miner');
|
||||
}
|
||||
await refresh();
|
||||
return true;
|
||||
});
|
||||
}
|
||||
@@ -141,6 +143,19 @@ class MiningController extends StateNotifier<MiningState> {
|
||||
}
|
||||
}
|
||||
|
||||
Future<bool> _confirmRunning(MinerLaunchConfig config) async {
|
||||
for (var i = 0; i < 6; i++) {
|
||||
final running = await _service.isRunning(config: config);
|
||||
if (running) {
|
||||
final summary = await _service.fetchSummary(config: config);
|
||||
state = state.copyWith(running: true, summary: summary, error: null);
|
||||
return true;
|
||||
}
|
||||
await Future.delayed(const Duration(milliseconds: 500));
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
MinerLaunchConfig? _tryBuildLaunchConfig() {
|
||||
try {
|
||||
return _buildLaunchConfig();
|
||||
|
||||
Reference in New Issue
Block a user