[pylucene-dev] detachCurrentThread crash

Andi Vajda vajda at osafoundation.org
Mon Jan 14 09:36:54 PST 2008


On Mon, 14 Jan 2008, anurag uniyal wrote:

> Is it expected to explicity remove any references to local/class variables 
> in threads?

If you create threads faster than Python and Java can collect the objects 
you leave lying around, then yes.

For instance, closing the store you're opening in every thread instead of 
None'ing it out may have the same effect.

Andi..

Otherwise VM crashes. e.g.
-----------
import threading
import lucene
lucene.initVM(lucene.CLASSPATH)
def threadFunc():
     lucene.getVMEnv().attachCurrentThread()
     _store = lucene.FSDirectory.getDirectory("/tmp/index/", True)
     #_store = None # set to None to avoid crash!

     lucene.getVMEnv().detachCurrentThread()
def main():
     t = threading.Thread(target=threadFunc)
     t.start()
     t.join()
main()
----

I need to call detachCurrentThread because I use threads heavily andI will soon get out-of-memory error if didn't call detachCurrentThread.

rgds
Anurag


       Save all your chat conversations. Find them online at http://in.messenger.yahoo.com/webmessengerpromo.php


More information about the pylucene-dev mailing list