diff options
author | Pirama Arumuga Nainar <pirama@google.com> | 2015-10-05 23:33:38 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2015-10-05 23:33:38 +0000 |
commit | c9390c8baf0a41633c176d6d9a2d7e5d0c61c387 (patch) | |
tree | 538705d9ce1b46d185ed13bfc94fcfd9bb0aa541 /rs/java/android/renderscript/RenderScript.java | |
parent | ee144b1e60a88e8f097113e046813f0b61c38b9b (diff) | |
parent | 46b51097b92900866ac5b25762f622d3ceb1be5d (diff) |
am 46b51097: Merge "Safely handle interrupts during Thread.join()"
* commit '46b51097b92900866ac5b25762f622d3ceb1be5d':
Safely handle interrupts during Thread.join()
Diffstat (limited to 'rs/java/android/renderscript/RenderScript.java')
-rw-r--r-- | rs/java/android/renderscript/RenderScript.java | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/rs/java/android/renderscript/RenderScript.java b/rs/java/android/renderscript/RenderScript.java index 5a27301badcb..7eb80055c4d5 100644 --- a/rs/java/android/renderscript/RenderScript.java +++ b/rs/java/android/renderscript/RenderScript.java @@ -1585,15 +1585,20 @@ public class RenderScript { mMessageThread.mRun = false; // Wait for mMessageThread to join. Try in a loop, in case this thread gets interrupted - // during the wait. - boolean hasJoined = false; + // during the wait. If interrupted, set the "interrupted" status of the current thread. + boolean hasJoined = false, interrupted = false; while (!hasJoined) { try { mMessageThread.join(); hasJoined = true; - } catch(InterruptedException e) { + } catch (InterruptedException e) { + interrupted = true; } } + if (interrupted) { + Log.v(LOG_TAG, "Interrupted during wait for MessageThread to join"); + Thread.currentThread().interrupt(); + } nContextDestroy(); |