diff options
author | Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> | 2024-02-23 15:11:24 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2024-02-23 15:11:24 +0000 |
commit | 5c6bfad5db7b7620acd75a2590b950ff9f45f4c5 (patch) | |
tree | 6cf80bb4f9fed6caba29225765970e5adf74f157 | |
parent | e4dee2f233855d02f0ce83cb3c84b22927454d6b (diff) | |
parent | 92b03ef02b1a217397b4f2223c991114b644ac0f (diff) | |
download | apache-harmony-5c6bfad5db7b7620acd75a2590b950ff9f45f4c5.tar.gz |
Merge "Wait for helper thread to finish in MonitorContendedEntered test" into main am: 92b03ef02bHEADmastermain
Original change: https://android-review.googlesource.com/c/platform/external/apache-harmony/+/2969271
Change-Id: I8740f7fad3cd61a3e2f007648013735860895283
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/Events/MonitorContendedEnterAndEnteredDebuggee.java | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/Events/MonitorContendedEnterAndEnteredDebuggee.java b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/Events/MonitorContendedEnterAndEnteredDebuggee.java index de5b397..53708d4 100644 --- a/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/Events/MonitorContendedEnterAndEnteredDebuggee.java +++ b/jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/Events/MonitorContendedEnterAndEnteredDebuggee.java @@ -50,13 +50,27 @@ public class MonitorContendedEnterAndEnteredDebuggee extends SyncDebuggee { Thread.yield(); logWriter.println("main thread: Waiting for second thread to attempt to lock a monitor"); } - + // We think the monitor is contended. synchronizer.sendMessage(JPDADebuggeeSynchronizer.SGNL_READY); // Make sure we're good to finish. synchronizer.receiveMessage(JPDADebuggeeSynchronizer.SGNL_CONTINUE); logWriter.println("--> main thread: finish test"); } + + // Wait for the blocked thread to join. This makes sure we entered the synchronized section + // in the blocked thread and hence the MonitorContentedEntered message should be sent. If we + // don't wait here, there is a possibility we exit the process before the blocked thread + // gets a chance to enter the monitor lock. + boolean done = false; + while (!done) { + try { + thread.join(); + done = true; + } catch(InterruptedException e) { + System.out.println("Thread interrupted when joining, giving another chance"); + } + } } static class BlockedThread extends Thread { |