Hi,
I'm seeing this error happen on the users:
java.lang.StackOverflowError
at react.Cons.insert(Cons.java:106)
......
at react.Cons.insert(Cons.java:106)
at react.Reactor$1.run(Reactor.java:51)
at react.Reactor.notify(Reactor.java:155)
at react.AbstractSignal.notifyEmit(AbstractSignal.java:82)
at react.Signal.emit(Signal.java:25)
at react.Signal$1.onEmit(Signal.java:35)
at react.AbstractSignal$4.notify(AbstractSignal.java:87)
at react.Reactor.notify(Reactor.java:139)
at react.AbstractSignal.notifyEmit(AbstractSignal.java:82)
at react.Signal.emit(Signal.java:25)
at playn.core.Game.paint(Game.java:73)
at playn.core.Game.onFrame(Game.java:97)
at playn.core.Game.access$000(Game.java:34)
at playn.core.Game$1.onEmit(Game.java:56)
at playn.core.Game$1.onEmit(Game.java:55)
at react.AbstractSignal$4.notify(AbstractSignal.java:87)
at react.Reactor.notify(Reactor.java:139)
at react.AbstractSignal.notifyEmit(AbstractSignal.java:82)
at react.Signal.emit(Signal.java:25)
at playn.core.Platform.emitFrame(Platform.java:124)
at playn.android.AndroidPlatform.processFrame(AndroidPlatform.java:98)
at playn.android.GameViewGL$1.onDrawFrame(GameViewGL.java:52)
at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1538)
at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1255)
I'm using the platform's frame signal in my main game screen to drive a timer, like this:
public void wasAdded() {
game().plat.frame.connect(timer);
}
public void wasRemoved() {
game().plat.frame.disconnect(timer);
}
The timer is set up to fire once per second:
timer.every(1000, () -> updateTimer());
Am I doing something wrong? It seems like there is some kind of race condition so that the listeners of the frame signal end up in an infinite loop sometimes. Any hints?
Thanks,
Andrés