aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatt Garnes <matt@cyngn.com>2015-04-09 17:40:00 -0700
committerGerrit Code Review <gerrit@cyanogenmod.org>2015-04-10 22:32:07 +0000
commit17388c6d5436f7736b38e11dda30a8a7fd0e17f6 (patch)
treeade90f69ae83fd338e2aed788b98368987f8d82d
parent748753da0d3f16c750180566540980bc82ce750c (diff)
downloadandroid_packages_apps_CMFileManager-17388c6d5436f7736b38e11dda30a8a7fd0e17f6.tar.gz
android_packages_apps_CMFileManager-17388c6d5436f7736b38e11dda30a8a7fd0e17f6.tar.bz2
android_packages_apps_CMFileManager-17388c6d5436f7736b38e11dda30a8a7fd0e17f6.zip
Fix deadlock when reading shell output.
Change-Id: Ia38ac6c415506f21ffde5a4c3e658e810dea92da (cherry picked from commit 2f7e43ce8f37b61c2998aadc56c6323faae80c51)
-rw-r--r--src/com/cyanogenmod/filemanager/commands/shell/AsyncResultProgram.java23
1 files changed, 5 insertions, 18 deletions
diff --git a/src/com/cyanogenmod/filemanager/commands/shell/AsyncResultProgram.java b/src/com/cyanogenmod/filemanager/commands/shell/AsyncResultProgram.java
index a340b78f..94e8447b 100644
--- a/src/com/cyanogenmod/filemanager/commands/shell/AsyncResultProgram.java
+++ b/src/com/cyanogenmod/filemanager/commands/shell/AsyncResultProgram.java
@@ -53,10 +53,6 @@ public abstract class AsyncResultProgram
*/
final List<Byte> mPartialDataType;
final Object mSync = new Object();
- /**
- * @hide
- */
- final Object mTerminateSync = new Object();
private boolean mCancelled;
private OnCancelListener mOnCancelListener;
@@ -134,14 +130,11 @@ public abstract class AsyncResultProgram
this.mWorkerThread.mAlive = false;
this.mSync.notify();
}
- synchronized (this.mTerminateSync) {
- if (this.mWorkerThread.isAlive()) {
- try {
- this.mTerminateSync.wait();
- } catch (Exception e) {
- /**NON BLOCK**/
- }
- }
+
+ try {
+ this.mWorkerThread.join();
+ } catch (InterruptedException e) {
+ // Ignore this.
}
//Notify end to command class
@@ -395,12 +388,6 @@ public abstract class AsyncResultProgram
}
} catch (Exception e) {
/**NON BLOCK**/
-
- } finally {
- this.mAlive = false;
- synchronized (AsyncResultProgram.this.mTerminateSync) {
- AsyncResultProgram.this.mTerminateSync.notify();
- }
}
}
}