diff options
author | Jason Sams <rjsams@android.com> | 2010-09-16 13:43:19 -0700 |
---|---|---|
committer | Jason Sams <rjsams@android.com> | 2010-09-16 16:45:55 -0700 |
commit | a8bf9429b29743b3489817feb21bde2416acc465 (patch) | |
tree | c501bc9b2a474d23fe88d0ac9e826b0f0bdb1ddf /graphics/java/android/renderscript/RenderScript.java | |
parent | ec7291c99f60658fff3dc1921d2908c986ca3e9e (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.java | 6 |
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; |