Fix closes issue #11109 - socketserver.ForkingMixIn leaves zombies, also fails to reap all zombies in one pass.

A new method called service_action is made available in BaseServer, called by
serve_forever loop. This useful in cases where Mixins can use it for cleanup
action. ForkingMixin class uses service_action to collect the zombie child
processes. Initial Patch by Justin Wark.
This commit is contained in:
Senthil Kumaran 2011-05-26 00:22:59 +08:00
parent dac9acedfd
commit 5e826e8a1b
2 changed files with 34 additions and 3 deletions

View file

@ -153,8 +153,21 @@ Server Objects
.. method:: BaseServer.serve_forever(poll_interval=0.5)
Handle requests until an explicit :meth:`shutdown` request. Polls for
shutdown every *poll_interval* seconds.
shutdown every *poll_interval* seconds. It also calls
:meth:`service_actions` which may be used by a subclass or Mixin to provide
various cleanup actions. For e.g. ForkingMixin class uses
:meth:`service_actions` to cleanup the zombie child processes.
.. versionchanged:: 3.3
Added service_actions call to the serve_forever method.
.. method:: BaseServer.service_actions()
This is called by the serve_forever loop. This method is can be overridden
by Mixin's to add cleanup or service specific actions.
.. versionadded:: 3.3
.. method:: BaseServer.shutdown()