|
Alan Davies
alan at goatpunch.com
Mon Mar 7 17:17:50 EST 2005
Hi,
not sure why your code wouldn't work. I use the equivalent of the
following to get the effect you're looking for:
ddcServer = None
def handler(req):
global ddcServer
if not ddcServer :
ddcServer = DDCServer()
# ...
# ...
Incidentally, I once had problems with huge memory leaks when I wrote
code similar to yours that assigned req to a variable that persisted
across calls. They were fixed by assigning the variable to another value
before returning (strange but true):
ddcServer.req = req
ddcServer.do_GET()
ddcServer.req = None
--Alan
On Mon, 7 Mar 2005 16:32:27 -0500, "Wagner,Harry" <wagnerh at oclc.org>
said:
> Is there a way with mod_python to init global variables in a handler the
> first time it is called, so that they are available (and already
> initialized) in subsequent calls to the handler? I thought the
> following might work, but no joy:
>
> from mod_python import apache, util, Session
>
> def handler(req):
> # req.log_error("in handler")
> global ddcServer
> ddcServer.req = req
> ddcServer.do_GET()
> return apache.OK
> ...
> ddcServer = ''
> if not ddcServer:
> ...
> ddcServer = DDCServer(None)
> ddcServer.captions = DDCCaptions(captionsFile)
> ddcServer.localText = TextLocalization(captionsFile)
> ddcServer.ddcSearch = ddc3.DDCSearch(oclc2ddcFile, recFileName,
> compFile)
>
> The 'if not ddcServer' code is invoked with every call to the handler.
> Any ideas what I am doing wrong, or if this is possible with mod_python?
>
>
> TIA... harry
>
> _______________________________________________
> Mod_python mailing list
> Mod_python at modpython.org
> http://mailman.modpython.org/mailman/listinfo/mod_python
|