Solved concurrency problems in redownloadAllGames()

This commit is contained in:
Yair Morgenstern 2021-02-06 20:34:02 +02:00
parent 20cf0c9203
commit 9054480bf7

View File

@ -15,12 +15,14 @@ import com.unciv.ui.pickerscreens.PickerScreen
import com.unciv.ui.utils.* import com.unciv.ui.utils.*
import com.unciv.ui.worldscreen.mainmenu.OnlineMultiplayer import com.unciv.ui.worldscreen.mainmenu.OnlineMultiplayer
import java.util.* import java.util.*
import java.util.concurrent.ConcurrentHashMap
import kotlin.concurrent.thread import kotlin.concurrent.thread
class MultiplayerScreen(previousScreen: CameraStageBaseScreen) : PickerScreen() { class MultiplayerScreen(previousScreen: CameraStageBaseScreen) : PickerScreen() {
private lateinit var selectedGameFile: FileHandle private lateinit var selectedGameFile: FileHandle
private var multiplayerGames = mutableMapOf<FileHandle, GameInfo>() // Concurrent because we can get concurrent modification errors if we change things around while running redownloadAllGames() in another thread
private var multiplayerGames = ConcurrentHashMap<FileHandle, GameInfo>()
private val rightSideTable = Table() private val rightSideTable = Table()
private val leftSideTable = Table() private val leftSideTable = Table()