serve_forever() and non-blocking connection

Steve Holden sholden at
Sun Sep 8 21:26:10 CEST 2002

"Colin Thefleau" <quatrelle at> wrote in message
news:ale100$bj4$1 at nets3.rz.RWTH-Aachen.DE...
> Hi
> I have a problem programing a small proxy with non-blocking sockets. I
> guess asyncore would be better, but I have no idea how to implement it
> and the application is runing now (just too slow).
> So I would like to use threads. First here a small example of what I use
> for the connection (inside  a function):
> http_proxy = HTTPServer(configuration.listen, RequestHandler)
> http_proxy.serve_forever()
> Now this serve_forever() process one request at a time.
> Ok this is working but too slow. I tried to to use handle_request()
> instead of serve_forever() in a while loop and put some
> thread.start_new_thread(http_proxy.handle_request, ())
> in there. But this looks too dirty and apparently does not help much.
> So here my newbee question: what would be the (better) right approach to
> be able so serve many connections at the same time? Knowing that each
> process can be quite CPU hungry.
> Any advice is greatly aprecieted

Try using the ThreadingMixIn, something like this

    class ThreadingHTTPServer(SocketServer.ThreadingMixIn,
    http_proxy = ThreadingHTTPServer(configuration.listen, RequestHandler)

Steve Holden                        
Python Web Programming              
Previous .sig file retired to          

More information about the Python-list mailing list