Confirm xmrig startup before reporting failure
build / Build Linux (lite) (push) Successful in 2m25s
build / Build Linux (mining) (push) Successful in 2m31s
build / Build Windows (lite) (push) Successful in 19m1s
build / Build Windows (mining) (push) Successful in 19m11s

This commit is contained in:
Codex Bot
2026-04-20 23:58:46 +02:00
parent eef05a265d
commit b1091a05e4
+19 -4
View File
@@ -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();