From: Jan.Kybic at epfl.ch (Jan Kybic)
Date: 28 Apr 1999 14:46:09 +0200
Subject: Q: Threading and reload
Message-ID: <lxkeml4oqum.fsf@ioasun3.epfl.ch>
Content-Length: 1535
X-UID: 270                                                  

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 at 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.




