[mod_python] Shared global variables among apache children?

justind justind at ussonet.net
Thu Aug 10 15:08:38 EDT 2006


It feels like I'm missing either one configuration option or this may 
not even be possible.

I have this little bit of code. I expected, that every 4 seconds that x 
would increment by 1 on the returned page. It does. However I think that 
this same code is loaded into each child process (correct me if I'm 
wrong) of apache.
Depending on which child I get, and when they were launched (hitting 
refresh rapidly on Firefox seems to demonstrate this too me) I get a 
different page back. One will show 4 then a refresh will show 3, another 
will show 3, another will show 4 and so on and so forth.

I guess my question is, how can I share the global variable of x among 
all the apache child processes, or is this really my problem)?

Any help would be very appreciated.

Code follows below:

from mod_python import apache
import time
import thread

x = 1

def handler(req):
    global x
    req.content_type = 'text/plain'
    req.write("Hello World! " + str(x))
    return apache.OK

def do_me():
    global x
    while True:
        time.sleep(4)
        x += 1               
               
thread.start_new(do_me,())   


More information about the Mod_python mailing list