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

Commit 1078942e authored by Pirama Arumuga Nainar's avatar Pirama Arumuga Nainar
Browse files

Safely handle interrupts during Thread.join()

Bug: 24342101

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

Change-Id: I452124915ea3f19610e6d4a3411d741f2f604af2
(cherry picked from commit 83461d73)
parent 93db3d4b
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();