summaryrefslogtreecommitdiff
path: root/rs/java/android/renderscript/RenderScript.java
diff options
context:
space:
mode:
authorPirama Arumuga Nainar <pirama@google.com>2015-10-05 23:33:38 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2015-10-05 23:33:38 +0000
commitc9390c8baf0a41633c176d6d9a2d7e5d0c61c387 (patch)
tree538705d9ce1b46d185ed13bfc94fcfd9bb0aa541 /rs/java/android/renderscript/RenderScript.java
parentee144b1e60a88e8f097113e046813f0b61c38b9b (diff)
parent46b51097b92900866ac5b25762f622d3ceb1be5d (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.java11
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();