SimpleXMLRPCServer interruptable?
Gabriel Genellina
gagsl-py2 at yahoo.com.ar
Wed Dec 5 19:22:06 EST 2007
En Wed, 05 Dec 2007 18:20:35 -0300, Bret <bret.wortman at gmail.com> escribió:
> I just tried changing this so that I now have a threading.Event()
> called self.done, which is set within the body of the shutdown()
> method. The serverWrapper loop now looks like this:
>
> def serverWrapper():
> while True:
> server.handle_request()
> if self.done.isSet():
> break
>
> This works, but only if I follow the shutdown() rpc call a few seconds
> later with ... something else to cause handle_request() to complete
> again. Obviously, not quite the right approach....
You could try setting a reasonable timeout on the listening socket; I
would override the server_bind method, calling self.socket.settimeout(xxx)
before calling the inherited method. I've never actually done it with a
SimpleXMLRPCServer, but *should* work. Don't use a very small timeout,
because it affects *all* subsequent operations.
--
Gabriel Genellina
More information about the Python-list
mailing list