- // The emulator exited on its own, all is fine
- setTitle(String.format("%s [Completed - %d]",
- getTitle(), shell.exitValue()));
- shell = null;
- emulator.close();
+ try {
+ int rc = shell.exitValue();
+ // The emulator exited on its own, all is fine
+ setTitle(String.format("%s [Completed - %d]",
+ getTitle(), rc));
+ shell = null;
+ emulator.close();
+ } catch (IllegalThreadStateException e) {
+ // The emulator thread has exited, but the shell Process
+ // hasn't figured that out yet. Do nothing, we will see
+ // this in a future tick.
+ }