CGIHTTPServer threading problems

infidel saint.infidel at
Fri Mar 31 18:00:55 CEST 2006

Alvin A. Delagon wrote:
> I'm a simple python webserver based on CGIHTTPServer module:
> import CGIHTTPServer
> import BaseHTTPServer
> import SocketServer
> import sys
> import SQL,network
> from config import *
> class
> ThreadingServer(SocketServer.ThreadingMixIn,BaseHTTPServer.HTTPServer):
>     pass
> cfg = params()
> print "XBOX Server started on port %s. Press Ctrl+C to kill Server" %
> cfg.port
> server =
> ThreadingServer((,cfg.port),CGIHTTPServer.CGIHTTPRequestHandler)
> try:
>     while 1:
>         sys.stdout.flush()
>         server.handle_request()
> except KeyboardInterrupt:
>     print "Server killed"
> The my cgi scripts are stored in the cgi-bin folder. One cgi script in
> particular implements multi-threading and is supposed to be asynchronous
> but it's not working. The browser that requests on the cgi script tends
> to wait until the cgi script is done. I checked multi-threaded cgi
> script but I'm 100% percent sure that it has no problem since it worked
> as a mod_python script before. Anyone came across with this problem?

CGI doesn't run asynchronously.  All you've done with a multithreaded
CGI server is have each CGI script run on a separate thread.  But that
doesn't change the fact that a browser is going to sit there and wait
as the CGI script runs to completion (which is how the server knows
it's done).

More information about the Python-list mailing list