mirror of
https://github.com/MightyPirates/OpenComputers.git
synced 2025-09-17 03:05:30 -04:00
Added try-catch to suppress errors when trying to release a ticket for a world that's currently being unloaded. Closes #710.
This commit is contained in:
parent
0ae0d5d67e
commit
2947ded770
@ -40,7 +40,9 @@ object ChunkloaderUpgradeHandler extends LoadingCallback {
|
|||||||
// so if the save is because the game is being quit the tickets aren't
|
// so if the save is because the game is being quit the tickets aren't
|
||||||
// actually being cleared. This will *usually* not be a problem, but it
|
// actually being cleared. This will *usually* not be a problem, but it
|
||||||
// has room for improvement.
|
// has room for improvement.
|
||||||
restoredTickets.values.foreach(ForgeChunkManager.releaseTicket)
|
restoredTickets.values.foreach(ticket => try ForgeChunkManager.releaseTicket(ticket) catch {
|
||||||
|
case _: Throwable => // Ignored.
|
||||||
|
})
|
||||||
restoredTickets.clear()
|
restoredTickets.clear()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -27,7 +27,9 @@ class UpgradeChunkloader(val host: EnvironmentHost) extends prefab.ManagedEnviro
|
|||||||
super.update()
|
super.update()
|
||||||
if (host.world.getTotalWorldTime % Settings.get.tickFrequency == 0 && ticket.isDefined) {
|
if (host.world.getTotalWorldTime % Settings.get.tickFrequency == 0 && ticket.isDefined) {
|
||||||
if (!node.tryChangeBuffer(-Settings.get.chunkloaderCost * Settings.get.tickFrequency)) {
|
if (!node.tryChangeBuffer(-Settings.get.chunkloaderCost * Settings.get.tickFrequency)) {
|
||||||
ticket.foreach(ForgeChunkManager.releaseTicket)
|
ticket.foreach(ticket => try ForgeChunkManager.releaseTicket(ticket) catch {
|
||||||
|
case _: Throwable => // Ignored.
|
||||||
|
})
|
||||||
ticket = None
|
ticket = None
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -54,7 +56,9 @@ class UpgradeChunkloader(val host: EnvironmentHost) extends prefab.ManagedEnviro
|
|||||||
override def onDisconnect(node: Node) {
|
override def onDisconnect(node: Node) {
|
||||||
super.onDisconnect(node)
|
super.onDisconnect(node)
|
||||||
if (node == this.node) {
|
if (node == this.node) {
|
||||||
ticket.foreach(ForgeChunkManager.releaseTicket)
|
ticket.foreach(ticket => try ForgeChunkManager.releaseTicket(ticket) catch {
|
||||||
|
case _: Throwable => // Ignored.
|
||||||
|
})
|
||||||
ticket = None
|
ticket = None
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -75,7 +79,9 @@ class UpgradeChunkloader(val host: EnvironmentHost) extends prefab.ManagedEnviro
|
|||||||
ChunkloaderUpgradeHandler.updateLoadedChunk(this)
|
ChunkloaderUpgradeHandler.updateLoadedChunk(this)
|
||||||
}
|
}
|
||||||
else if (!enabled && ticket.isDefined) {
|
else if (!enabled && ticket.isDefined) {
|
||||||
ticket.foreach(ForgeChunkManager.releaseTicket)
|
ticket.foreach(ticket => try ForgeChunkManager.releaseTicket(ticket) catch {
|
||||||
|
case _: Throwable => // Ignored.
|
||||||
|
})
|
||||||
ticket = None
|
ticket = None
|
||||||
}
|
}
|
||||||
ticket.isDefined
|
ticket.isDefined
|
||||||
|
Loading…
x
Reference in New Issue
Block a user