summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2024-02-28 21:22:47 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2024-02-28 21:22:47 +0000
commitc10ef07a7da98475a8c1e9bf878fbc69109be7e3 (patch)
tree6cf80bb4f9fed6caba29225765970e5adf74f157
parent706973ba11563a1d9d5c9d5a88e875289710f11f (diff)
parent1d3e465b59e053a2358cd789645e8d88087d3e5a (diff)
downloadapache-harmony-simpleperf-release.tar.gz
Merge "Snap for 11510257 from 92b03ef02b1a217397b4f2223c991114b644ac0f to simpleperf-release" into simpleperf-releasesimpleperf-release
-rw-r--r--jdwp/src/test/java/org/apache/harmony/jpda/tests/jdwp/Events/MonitorContendedEnterAndEnteredDebuggee.java16
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 {