Guy Davis
davis at guydavis.ca
Tue Sep 2 11:10:47 EST 2003
Hi all, I'm writing a custom handler using the mod_python.cgi_handler as a guide on Apache 1.3 with mod_python 2.7. Unfortunately, our old CGI makes use of certain super-global variables that are not easily done away with. I've been able to get this to work by having the handler set the global vars into the __builtins__ dictionary. Then various CGI scripts can pull them from __builtins__ when needed. I know using __builtins__ in this fashion is not recommended as it's a bit of a hack. My question is whether storing per-request information in __builtins__ is risky due to concurrency reasons. Put another way, is __builtins__ shared between concurrent requests? For example, person A hits a page and the handler stores __builtins__['foo'] = 'bar'. At nearly the same time person B hits a page and the handler stores __builtins__['foo'] = 'bar2'. After this occurs, the CGI for person A retrieves __builtins__['foo']. Will the result always be 'bar' or will 'bar2' sometimes be returned depending on the timing? Will the behaviour be any different under Apache 2 and mod_python 3? Thanks in advance for any responses. Guy Davis http://www.guydavis.ca
|