[mod_python] Good idea to use apache.setup_cgi() with multithreadedmodel?

Huzaifa Tapal huzaifa at hostway.com
Wed Feb 23 10:16:13 EST 2005


Hello All,

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/20050223/0b800428/attachment.html


More information about the Mod_python mailing list