Enable calling jep.findClass() from threads created by python.#614
Merged
Conversation
ndjensen
approved these changes
Sep 22, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This just switched fep.findClass() to use pyembed_get_env() instead of pyembed_get_jepthread() for accessing the JNIEnv*. pyembed_get_env() is already used in 68 places(pyembed_get_jepthread() is in 5) so it has proven a reliable way to access the JNIEnv* but pyembed_get_env() will work on any thread where as pyembed_get_jepthread() works only on threads with a jep instance in java.
In the longer term I would like to enable jep to be used from python created threads to give users the ability to take advantage of multithreading in python. Using jep in python created threads also gets us closer to being able to use jep to embed java in a python application. I do not have time to make much progress on that goal for the 4.3 release but this is a simple change that is a very small step in that direction.