diff options
author | Matt Garnes <matt@cyngn.com> | 2015-04-09 17:40:00 -0700 |
---|---|---|
committer | Gerrit Code Review <gerrit@cyanogenmod.org> | 2015-04-10 22:32:07 +0000 |
commit | 17388c6d5436f7736b38e11dda30a8a7fd0e17f6 (patch) | |
tree | ade90f69ae83fd338e2aed788b98368987f8d82d | |
parent | 748753da0d3f16c750180566540980bc82ce750c (diff) | |
download | android_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.java | 23 |
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(); - } } } } |