don't create threads we won't use

This commit is contained in:
Eric House 2019-02-08 14:37:58 -08:00
parent 6b449bb079
commit 30f70db59b

View file

@ -196,6 +196,12 @@ public class BTService extends XWJIService {
{ {
Assert.assertFalse( BOGUS_MARSHMALLOW_ADDR.equals( m_btAddr ) ); Assert.assertFalse( BOGUS_MARSHMALLOW_ADDR.equals( m_btAddr ) );
} }
@Override
public String toString()
{
return String.format( "{cmd: %s}", m_cmd );
}
} }
private BluetoothAdapter m_adapter; private BluetoothAdapter m_adapter;
@ -777,9 +783,11 @@ public class BTService extends XWJIService {
private synchronized void releaseSender( BTService bts ) private synchronized void releaseSender( BTService bts )
{ {
BTSenderThread self = senderFor( bts ); BTSenderThread thread = sMap.get( bts );
self.mFinishing = true; if ( null != thread ) {
sMap.remove( bts ); thread.mFinishing = true;
sMap.remove( bts );
}
} }
private class BTSenderThread extends Thread { private class BTSenderThread extends Thread {
@ -802,6 +810,7 @@ public class BTService extends XWJIService {
@Override @Override
public void run() public void run()
{ {
int nDone = 0;
String className = getClass().getSimpleName(); String className = getClass().getSimpleName();
Log.d( TAG, "%s.run() starting", className ); Log.d( TAG, "%s.run() starting", className );
for ( ; ; ) { for ( ; ; ) {
@ -821,6 +830,7 @@ public class BTService extends XWJIService {
break; break;
} }
} else { } else {
++nDone;
// DbgUtils.logf( "run: got %s from queue", elem.m_cmd.toString() ); // DbgUtils.logf( "run: got %s from queue", elem.m_cmd.toString() );
switch( elem.m_cmd ) { switch( elem.m_cmd ) {
@ -857,8 +867,8 @@ public class BTService extends XWJIService {
} }
} }
} }
Log.d( TAG, "%s.run() exiting (owner was %s)", className, Log.d( TAG, "%s.run() exiting (owner was %s; handled %d packets)",
BTService.this ); className, BTService.this, nDone );
} // run } // run
private void sendPings( MultiEvent event, int timeout ) private void sendPings( MultiEvent event, int timeout )