summaryrefslogtreecommitdiff
path: root/graphics/java/android/renderscript/RenderScript.java
diff options
context:
space:
mode:
authorJason Sams <rjsams@android.com>2010-09-16 13:43:19 -0700
committerJason Sams <rjsams@android.com>2010-09-16 16:45:55 -0700
commita8bf9429b29743b3489817feb21bde2416acc465 (patch)
treec501bc9b2a474d23fe88d0ac9e826b0f0bdb1ddf /graphics/java/android/renderscript/RenderScript.java
parentec7291c99f60658fff3dc1921d2908c986ca3e9e (diff)
Fix race condition on exit.
Change-Id: I1ae1818122604dde5993b2b8ef702bda5194d87d
Diffstat (limited to 'graphics/java/android/renderscript/RenderScript.java')
-rw-r--r--graphics/java/android/renderscript/RenderScript.java6
1 files changed, 5 insertions, 1 deletions
diff --git a/graphics/java/android/renderscript/RenderScript.java b/graphics/java/android/renderscript/RenderScript.java
index 1f3e159122ca..13120368c193 100644
--- a/graphics/java/android/renderscript/RenderScript.java
+++ b/graphics/java/android/renderscript/RenderScript.java
@@ -608,7 +608,7 @@ public class RenderScript {
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 @@ public class RenderScript {
validate();
nContextDeinitToClient(mContext);
mMessageThread.mRun = false;
+ try {
+ mMessageThread.join();
+ } catch(InterruptedException e) {
+ }
nContextDestroy();
mContext = 0;