I just checked in changes to the way calls from python to java are handled.
With these changes, everytime the python-to-java boundary is crossed, the calling thread releases the python GIL (Global Interpreter Lock). Conversely, everytime the java-to-python boundary is crossed, the GIL is re-acquired.
This means that better concurrency and python/java reentrancy is achieved. This also means that long calls to java don't appear to block the entire python process anymore. In the past, I had added specific overloads to some Lucene APIs such as IndexWriter.optimize() that accepted an optional 'yield' boolean argument achieving the same but just for that API. I removed these overloaded APIs as they are no longer necessary.


Andi..



_______________________________________________
pylucene-dev mailing list
[email protected]
http://lists.osafoundation.org/mailman/listinfo/pylucene-dev

Reply via email to