mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-14 01:48:04 -04:00
profile loader: properly crash when error occurs
This commit is contained in:
parent
0cfb65b0c9
commit
749936ec7b
@ -33,6 +33,7 @@ import de.bixilon.minosoft.config.profile.profiles.resources.ResourcesProfileMan
|
|||||||
import de.bixilon.minosoft.config.profile.storage.ProfileIOManager
|
import de.bixilon.minosoft.config.profile.storage.ProfileIOManager
|
||||||
import de.bixilon.minosoft.config.profile.storage.StorageProfileManager
|
import de.bixilon.minosoft.config.profile.storage.StorageProfileManager
|
||||||
import de.bixilon.minosoft.data.registries.factory.DefaultFactory
|
import de.bixilon.minosoft.data.registries.factory.DefaultFactory
|
||||||
|
import de.bixilon.minosoft.gui.eros.crash.ErosCrashReport.Companion.crash
|
||||||
import de.bixilon.minosoft.terminal.RunConfiguration
|
import de.bixilon.minosoft.terminal.RunConfiguration
|
||||||
import java.nio.file.Files
|
import java.nio.file.Files
|
||||||
|
|
||||||
@ -77,10 +78,22 @@ object ProfileManagers : DefaultFactory<StorageProfileManager<*>>(
|
|||||||
FileWatcherService.start() // TODO: kutil 1.25: remove kutil race condition
|
FileWatcherService.start() // TODO: kutil 1.25: remove kutil race condition
|
||||||
}
|
}
|
||||||
val worker = UnconditionalWorker()
|
val worker = UnconditionalWorker()
|
||||||
|
var first: Throwable? = null
|
||||||
for (manager in ProfileManagers) {
|
for (manager in ProfileManagers) {
|
||||||
worker += { manager.load() }
|
worker += {
|
||||||
|
try {
|
||||||
|
manager.load()
|
||||||
|
} catch (error: Throwable) {
|
||||||
|
error.printStackTrace()
|
||||||
|
if (first == null) {
|
||||||
|
first = error
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
worker.work(latch)
|
worker.work(latch)
|
||||||
|
first?.let { it.crash(); throw it }
|
||||||
|
|
||||||
ProfileIOManager.init()
|
ProfileIOManager.init()
|
||||||
|
|
||||||
// runLater(5000) {
|
// runLater(5000) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user