mirror of
https://github.com/python/cpython.git
synced 2025-08-04 17:08:35 +00:00
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:
parent
dac9acedfd
commit
5e826e8a1b
2 changed files with 34 additions and 3 deletions
|
@ -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()
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue