fix deadlock: do not lock Viewport while calling MapAnimator
"GLThread 4500" prio=5 tid=11 MONITOR
at org.oscim.map.MapAnimator.updateAnimation(MapAnimator.java:~186)
- waiting to lock <0x42105030> (a org.oscim.map.MapAnimator) held by tid=1 (main)
"main" prio=5 tid=1 MONITOR
at org.oscim.map.Viewport.getMapPosition(Viewport.java:~111)
- waiting to lock <0x42103368> (a org.oscim.map.Viewport) held by tid=11 (GLThread 4500)
at org.oscim.map.MapAnimator.animateFling(MapAnimator.java:151)
This commit is contained in:
parent
d85782b055
commit
67edb98d12
@ -230,15 +230,13 @@ public class MapRenderer {
|
|||||||
GLState.bindTex2D(-1);
|
GLState.bindTex2D(-1);
|
||||||
GLState.useProgram(-1);
|
GLState.useProgram(-1);
|
||||||
|
|
||||||
boolean changed = false;
|
mMap.getAnimator().updateAnimation();
|
||||||
|
|
||||||
MapPosition pos = mMapPosition;
|
MapPosition pos = mMapPosition;
|
||||||
|
|
||||||
Viewport viewport = mMap.getViewport();
|
Viewport viewport = mMap.getViewport();
|
||||||
|
boolean changed = false;
|
||||||
|
|
||||||
synchronized (viewport) {
|
synchronized (viewport) {
|
||||||
mMap.getAnimator().updateAnimation();
|
|
||||||
|
|
||||||
// get current MapPosition
|
// get current MapPosition
|
||||||
changed = viewport.getMapPosition(pos);
|
changed = viewport.getMapPosition(pos);
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user