Fix race condition on exit.

Change-Id: I1ae1818122604dde5993b2b8ef702bda5194d87d
diff --git a/graphics/java/android/renderscript/RenderScript.java b/graphics/java/android/renderscript/RenderScript.java
index 1f3e159..1312036 100644
--- a/graphics/java/android/renderscript/RenderScript.java
+++ b/graphics/java/android/renderscript/RenderScript.java
@@ -608,7 +608,7 @@
             while(mRun) {
                 rbuf[0] = 0;
                 int msg = mRS.nContextGetMessage(mRS.mContext, rbuf, true);
-                if (msg == 0) {
+                if ((msg == 0) && mRun) {
                     // Can happen for two reasons
                     if (rbuf[0] > 0) {
                         // 1: Buffer needs to be enlarged.
@@ -661,6 +661,10 @@
         validate();
         nContextDeinitToClient(mContext);
         mMessageThread.mRun = false;
+        try {
+            mMessageThread.join();
+        } catch(InterruptedException e) {
+        }
 
         nContextDestroy();
         mContext = 0;