Skip to content

Enable calling jep.findClass() from threads created by python.#614

Merged
bsteffensmeier merged 1 commit into
ninia:dev_4.3from
bsteffensmeier:python-threads
Sep 22, 2025
Merged

Enable calling jep.findClass() from threads created by python.#614
bsteffensmeier merged 1 commit into
ninia:dev_4.3from
bsteffensmeier:python-threads

Conversation

@bsteffensmeier

Copy link
Copy Markdown
Member

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.

@bsteffensmeier bsteffensmeier merged commit 560526f into ninia:dev_4.3 Sep 22, 2025
1 check passed
@bsteffensmeier bsteffensmeier deleted the python-threads branch September 22, 2025 02:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants