> The test hits a breakpoint on thread2 with SUSPEND_EVENT_THREAD policy, so > only thread2 is suspended. It then does a vm.suspend(), which suspends all > threads and bumps the suspendCount of thread2 up to 2. It then does an > eventSet.resume(), which decrements the thread2 suspendCount to 1, so now all > threads are suspended with a suspendCount of 1. thread2 is then resumed and > we expect to hit the next thread2 breakpoint. The problem is that thread2 > can't hit the breakpoint until the main thread has proceeded far enough, and > if the vm.suspend() that suspended the main thread happens too quickly, it > won't have proceeded far enough, so thread2 never hits the breakpoint. > > Essentially we need a vm.resume() to allow the main thread to run, but we > need to do it in a way that does nullify part of what the test is testing > for. So in order to allow the vm.resume() but not subvert the intent of the > test, we first do a thread2.suspend() so the vm.resume() won't resume thread2. > > Testing in progress: tier1 and tier5 svc testing
Chris Plummer has updated the pull request incrementally with one additional commit since the last revision: Remove extra space. Cleanup header println() in printThreadsInfo() since it is now general purpose and not just used when killing debuggee. ------------- Changes: - all: https://git.openjdk.org/jdk/pull/20088/files - new: https://git.openjdk.org/jdk/pull/20088/files/3c9b88d6..bb926b44 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=20088&range=03 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=20088&range=02-03 Stats: 3 lines in 1 file changed: 0 ins; 0 del; 3 mod Patch: https://git.openjdk.org/jdk/pull/20088.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/20088/head:pull/20088 PR: https://git.openjdk.org/jdk/pull/20088