Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a186456f authored by Pirama Arumuga Nainar's avatar Pirama Arumuga Nainar
Browse files

Safely handle interrupts during Thread.join()

Interrupt current thread if InterruptedException is received during
Thread.join().  Also, log the interruption.

Change-Id: I452124915ea3f19610e6d4a3411d741f2f604af2
(cherry picked from commit 83461d73)
parent 13a71fbc
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -1559,15 +1559,20 @@ public class RenderScript {
            mMessageThread.mRun = false;

            // Wait for mMessageThread to join.  Try in a loop, in case this thread gets interrupted
            // during the wait.
            boolean hasJoined = false;
            // during the wait.  If interrupted, set the "interrupted" status of the current thread.
            boolean hasJoined = false, interrupted = false;
            while (!hasJoined) {
                try {
                    mMessageThread.join();
                    hasJoined = true;
                } catch (InterruptedException e) {
                    interrupted = true;
                }
            }
            if (interrupted) {
                Log.v(LOG_TAG, "Interrupted during wait for MessageThread to join");
                Thread.currentThread().interrupt();
            }

            nContextDestroy();