Safely handle interrupts during Thread.join()

Bug: 24342101

Interrupt current thread if InterruptedException is received during
Thread.join().  Also, log the interruption.

Change-Id: I452124915ea3f19610e6d4a3411d741f2f604af2
(cherry picked from commit 83461d73bc50d41f631e1db5c195d12b4eb9e6cf)
diff --git a/rs/java/android/renderscript/RenderScript.java b/rs/java/android/renderscript/RenderScript.java
index 62ddc39..4440417 100644
--- a/rs/java/android/renderscript/RenderScript.java
+++ b/rs/java/android/renderscript/RenderScript.java
@@ -1559,15 +1559,20 @@
             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();