> JNI Local handles can only be created by JavaThread (there's an assert in > make_local) but the fields are added to Thread. > Move the fields to JavaThread and adding JavaThread* argument. > Also, the global freelist isn't very useful now that global JNI handles don't > use JNIHandleBlock, so the locking that claims incorrectly to block for > safepoint is removed. > Lastly, there's at least 3 places that duplicate pushing a new JNIHandleBlock > to the thread for temporarily adding JNI local handles. These have been moved > to common code with a JNIHandleMark object, moved from jvmci code. > The commits are separate to help reviewing, but the entire change has been > tested together with tier1-6. > The commits in this change have been performance tested individually and > together with no meaningful differences from mainline.
Coleen Phillimore has updated the pull request incrementally with one additional commit since the last revision: Remove redundant assert. ------------- Changes: - all: https://git.openjdk.java.net/jdk/pull/6336/files - new: https://git.openjdk.java.net/jdk/pull/6336/files/f31dfeee..f24e32c1 Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=6336&range=02 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=6336&range=01-02 Stats: 2 lines in 1 file changed: 0 ins; 2 del; 0 mod Patch: https://git.openjdk.java.net/jdk/pull/6336.diff Fetch: git fetch https://git.openjdk.java.net/jdk pull/6336/head:pull/6336 PR: https://git.openjdk.java.net/jdk/pull/6336