From a8bf9429b29743b3489817feb21bde2416acc465 Mon Sep 17 00:00:00 2001 From: Jason Sams Date: Thu, 16 Sep 2010 13:43:19 -0700 Subject: [PATCH] Fix race condition on exit. Change-Id: I1ae1818122604dde5993b2b8ef702bda5194d87d --- graphics/java/android/renderscript/RenderScript.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/graphics/java/android/renderscript/RenderScript.java b/graphics/java/android/renderscript/RenderScript.java index 1f3e159122ca5..13120368c1937 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;