Retry if interrupted before mMessageThread has joined
Bug: 24342101 If interrupted during mMessageThread.join(), retry the join instead of assuming the thread has joined and continuing. Continuing to destroy the context will cause a segfault when the message thread attempts to use the destroyed context. Change-Id: I3213091a0e996449bceb403dffca3063786d5a65
This commit is contained in:
@@ -1574,9 +1574,16 @@ public class RenderScript {
|
||||
|
||||
nContextDeinitToClient(mContext);
|
||||
mMessageThread.mRun = false;
|
||||
try {
|
||||
mMessageThread.join();
|
||||
} catch(InterruptedException e) {
|
||||
|
||||
// Wait for mMessageThread to join. Try in a loop, in case this thread gets interrupted
|
||||
// during the wait.
|
||||
boolean hasJoined = false;
|
||||
while (!hasJoined) {
|
||||
try {
|
||||
mMessageThread.join();
|
||||
hasJoined = true;
|
||||
} catch(InterruptedException e) {
|
||||
}
|
||||
}
|
||||
|
||||
nContextDestroy();
|
||||
|
||||
Reference in New Issue
Block a user