mirror of
https://github.com/MatsuriDayo/nekoray.git
synced 2025-12-17 12:34:37 +03:00
feat: restart profile after core crash
This commit is contained in:
@@ -90,19 +90,22 @@ namespace NekoRay::sys {
|
||||
if (!dataStore->core_prepare_exit && state == QProcess::NotRunning) {
|
||||
if (failed_to_start) return; // no retry
|
||||
|
||||
restart_id = NekoRay::dataStore->started_id;
|
||||
dialog_message("ExternalProcess", "Crashed");
|
||||
showLog("[Error] core exited, restarting.\n");
|
||||
|
||||
// Restart
|
||||
auto t = new QTimer;
|
||||
connect(t, &QTimer::timeout, this, [=] {
|
||||
setTimeout([=] {
|
||||
Kill();
|
||||
ExternalProcess::started = false;
|
||||
Start();
|
||||
t->deleteLater();
|
||||
});
|
||||
t->setSingleShot(true);
|
||||
t->setInterval(1000);
|
||||
t->start();
|
||||
}, this, 1000);
|
||||
} else if (state == QProcess::Running && restart_id >= 0) {
|
||||
// Restart profile
|
||||
setTimeout([=] {
|
||||
dialog_message("ExternalProcess", "CoreRestarted," + Int2String(restart_id));
|
||||
restart_id = -1;
|
||||
}, this, 1000);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user