Huzaifa Tapal
huzaifa at hostway.com
Mon Feb 21 15:48:45 EST 2005
I have a custom handler that i have built that calls instantiates a web application framework I have written and asks it process the request. Since this web app framework originally was designed for CGI and was used in CGI, I am calling the apache.setup_cgi() to make the env seamless for the framework. I am running this under a multithreaded mpm apache configuration and am running into problems with race conditions with multiple threads accessing shared resources in memory. Since my customer handler kind of resembles the provided cgihandler which is not suited for a multithreaded env, I am wondering I am right in doing the apache.setup_cgi() like I am. My handler code looks like as follows: def handler(req): #_lock.acquire() #try: # setup the cgi environment env, si, so = apache.setup_cgi(req) # write the content type for testing purposes #sys.stdout.write("content-type: text/html\r\n\r\n") cache = req.get_options().get("CACHE", "Off") if cache == "Off": cache = 0 try: # load the driver driver = GlobalCache.getCachedItem("Driver") if not driver: driver = Driver(["./Driver.py"], cache_projects=cache, modpy_req=req) # cache if we have caching objects turned if cache: GlobalCache.setCachedItem("Driver",driver) # process the request driver.process() except: pass apache.restore_nocgi(env, si, so) return apache.OK #finally: # _lock.release() Any help would be appreciated. Hozi -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mm_cfg_has_not_been_edited_to_set_host_domains/pipermail/mod_python/attachments/20050221/62715ae0/attachment.html
|