> Please review this change to fix a problem that can rise if JVM TI suspension > is allowed when a thread is executing in a JNI "critical" region. The gory > details are in the first comment so that the PR emails are shorter > > A new test is introduced to check that we cannot suspend in a critical region > > Other testing: > - Tiers 1-5 on all platforms > > The key insights into this solution are attributed to @pchilano. Everything > simpler I tried was buggy and led me back to Patricio's suggested changes to > the operation filtering. The actual details of this and any remaining bugs in > it are all my own. > > Thanks. > > --------- > - [x] I confirm that I make this contribution in accordance with the [OpenJDK > Interim AI Policy](https://openjdk.org/legal/ai).
David Holmes has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 10 additional commits since the last revision: - Merge branch 'master' into 8373839-jni-crit-suspend - Replace assertion with code to check for null - thanks @pchilano - Use atomic store/load per style-guide for lock-free access - Use precond consistently - Fix typo - Use std::atomic for shared variables - Test stability improvements - Fix NULL usage now the test is in cpp file - cleanup - 8373839: Disable JVM TI suspension during JNI critical regions ------------- Changes: - all: https://git.openjdk.org/jdk/pull/30936/files - new: https://git.openjdk.org/jdk/pull/30936/files/872127f5..60f78752 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=30936&range=04 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=30936&range=03-04 Stats: 89650 lines in 1121 files changed: 28078 ins; 56712 del; 4860 mod Patch: https://git.openjdk.org/jdk/pull/30936.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/30936/head:pull/30936 PR: https://git.openjdk.org/jdk/pull/30936
