Mailing List Archive

Q: Threading and reload
Hello everybody,
I am developping a small web server. The problem is
that since I added multithreading, the reload() command does not seem
to have any effect. I have a separate thread for every request. The
interaction logic itself is in a special module. I would like to be
able to reload() this module for debugging purposes by issuing a
proper HTTP request. The code looks like this:

import Module

class ThreadingHTTPServer(BaseHTTPServer.HTTPServer):
def process_request(self, request, client_address):
"""Start a new thread to process the request."""
t=threading.Thread(target=self.finish_request,
args=(request, client_address))
t.setDaemon(1)
t.start()

class Handler(CGIHTTPServer.CGIHTTPRequestHandler):

def run_cgi(self):
if script=='reload':
reload(Module); ... ; return

...
if not clients.has_key[client_number]: # new client
clients[client_number]=Module.clientLogic()
clients[client_number].emit_page()
...

Before introducing threads, all worked fine but since then the reload()
does not seem to do anything. What am I doing wrong? Are there any
special considerations for using reload and threads? Thanks a lot.

Jan

--
-------------------------------------------------------------------------
Jan Kybic <Jan.Kybic@epfl.ch> BIG IOA DMT EPFL Lausanne, Switzerland
http://bigwww.epfl.ch/kybic tel. work +41 (21) 693 5741
For PGP key see my WWW page.