Fix a crash and a hang in the new computer manager code

This commit is contained in:
Cameron Gutman 2015-01-30 19:33:42 -05:00
parent ebd93a55a0
commit 72d3576257

View File

@ -508,7 +508,7 @@ public class ComputerManagerService extends Service {
return false; return false;
} }
return !thread.isInterrupted(); return thread != null && !thread.isInterrupted();
} }
public void start() { public void start() {
@ -553,7 +553,10 @@ public class ComputerManagerService extends Service {
computer.rawAppList = appList; computer.rawAppList = appList;
// Notify that the app list has been updated // Notify that the app list has been updated
listener.notifyComputerUpdated(computer); // and ensure that the thread is still active
if (listener != null && thread != null) {
listener.notifyComputerUpdated(computer);
}
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} }
@ -567,9 +570,7 @@ public class ComputerManagerService extends Service {
if (thread != null) { if (thread != null) {
thread.interrupt(); thread.interrupt();
try { // Don't join here because we might be blocked on network I/O
thread.join();
} catch (InterruptedException e) {}
thread = null; thread = null;
} }