v2.1.3: added a sync check for very rare level loading hangs

This commit is contained in:
Evan Debenham
2023-06-22 14:54:45 -04:00
parent 1ec5434c11
commit beee1fadac

View File

@@ -285,10 +285,12 @@ public class InterlevelScene extends PixelScene {
error = e;
}
if (phase == Phase.STATIC && error == null) {
phase = Phase.FADE_OUT;
timeLeft = fadeTime;
synchronized (thread) {
if (phase == Phase.STATIC && error == null) {
phase = Phase.FADE_OUT;
timeLeft = fadeTime;
}
}
}
};
@@ -310,11 +312,13 @@ public class InterlevelScene extends PixelScene {
case FADE_IN:
message.alpha( 1 - p );
if ((timeLeft -= Game.elapsed) <= 0) {
if (!thread.isAlive() && error == null) {
phase = Phase.FADE_OUT;
timeLeft = fadeTime;
} else {
phase = Phase.STATIC;
synchronized (thread) {
if (!thread.isAlive() && error == null) {
phase = Phase.FADE_OUT;
timeLeft = fadeTime;
} else {
phase = Phase.STATIC;
}
}
}
break;