On Jun 15, 2009, at 12:12 PM, Neha Gupta wrote:
The problem am having is that when I send a few requests one after
the other
then the server crashes. I tried to put initVM() right after import
lucene
statement at the top of the program but the crash still happens. I
also read
this post:
http://lists.osafoundation.org/pipermail/pylucene-dev/2008-April/002634.html
.<http://lists.osafoundation.org/pipermail/pylucene-dev/2008-April/002634.html
>
The problem seems familiar to mine, however, am not sure where
should I put
initVM(). Should I also be calling env.attachCurrentThread()
somewhere?
initVM must be called exactly once, so at the top of the program is a
fine place for it. attachCurrentThread must be called at least once
per thread. It is idempotent (and fast), so you can put it at the top
of your request handler.
I prefer putting it in the threading code anyway, instead of
cluttering the app. My lupyne project has an example of that: look
for WorkerThread in http://code.google.com/p/lupyne/source/browse/trunk/lupyne/server.py
. LuPyne uses cherrypy, and web.py uses cherrypy's wsgiserver, so the
code will translate.