Fixed seemingly random server crashes caused by ArrayIndexOutOfBoundsException on unsafe type during threaded operations by synchronizing add/remove logic for PulseRunner.TASKS
This commit is contained in:
@@ -10,8 +10,11 @@ import java.util.*
|
||||
|
||||
class PulseRunner {
|
||||
val TASKS = ArrayList<Pulse>()
|
||||
|
||||
fun submit(pulse: Pulse){
|
||||
TASKS.add(pulse)
|
||||
synchronized(this.TASKS) {
|
||||
TASKS.add(pulse)
|
||||
}
|
||||
}
|
||||
}
|
||||
/*
|
||||
|
||||
@@ -106,7 +106,9 @@ class MajorUpdateWorker {
|
||||
|
||||
//remove all null or finished pulses from the list
|
||||
rmlist.forEach {
|
||||
GameWorld.Pulser.TASKS.remove(it)
|
||||
synchronized(GameWorld.Pulser.TASKS) {
|
||||
GameWorld.Pulser.TASKS.remove(it)
|
||||
}
|
||||
}
|
||||
|
||||
rmlist.clear()
|
||||
|
||||
Reference in New Issue
Block a user