use tryLock() to avoid on-ui-thread assertions

This commit is contained in:
Eric House 2018-12-26 21:41:47 -08:00
parent 62cd90c183
commit b0805b0b6a

View file

@ -537,14 +537,13 @@ public class GameConfigDelegate extends DelegateBase
m_giOrig = new CurGameInfo( m_activity ); m_giOrig = new CurGameInfo( m_activity );
GameLock gameLock = null; GameLock gameLock = null;
XwJNI.GamePtr gamePtr; XwJNI.GamePtr gamePtr = null;
if ( null == m_jniThread ) { if ( null == m_jniThread ) {
try { gameLock = GameLock.getFor( m_rowid ).tryLockRO();
gameLock = GameLock.getFor( m_rowid ).lockRO(); if ( null != gameLock ) {
} catch (InterruptedException iex) { gamePtr = GameUtils.loadMakeGame( m_activity, m_giOrig,
Assert.assertFalse( BuildConfig.DEBUG ); gameLock );
} }
gamePtr = GameUtils.loadMakeGame( m_activity, m_giOrig, gameLock );
} else { } else {
gameLock = m_jniThread.getLock(); gameLock = m_jniThread.getLock();
gamePtr = m_jniThread.getGamePtr(); gamePtr = m_jniThread.getGamePtr();
@ -1234,9 +1233,8 @@ public class GameConfigDelegate extends DelegateBase
private void applyChanges( boolean forceNew ) private void applyChanges( boolean forceNew )
{ {
if ( !isFinishing() ) { if ( !isFinishing() ) {
try {
GameLock gameLock = m_jniThread == null GameLock gameLock = m_jniThread == null
? GameLock.getFor( m_rowid ).lock() ? GameLock.getFor( m_rowid ).tryLock()
: m_jniThread.getLock(); : m_jniThread.getLock();
GameUtils.applyChanges( m_activity, m_gi, m_car, m_disabMap, GameUtils.applyChanges( m_activity, m_gi, m_car, m_disabMap,
gameLock, forceNew ); gameLock, forceNew );
@ -1244,9 +1242,6 @@ public class GameConfigDelegate extends DelegateBase
if ( null == m_jniThread ) { if ( null == m_jniThread ) {
gameLock.unlock(); gameLock.unlock();
} }
} catch (InterruptedException iex) {
Assert.assertFalse( BuildConfig.DEBUG );
}
} }
} }