ansible: use Poller for WorkerProcess; closes #491.

pull/564/head
David Wilson 6 years ago
parent c6d5aa29ba
commit 7b129e8576

@ -44,6 +44,7 @@ import ansible.errors
import ansible.plugins.connection import ansible.plugins.connection
import ansible.utils.shlex import ansible.utils.shlex
import mitogen.core
import mitogen.fork import mitogen.fork
import mitogen.unix import mitogen.unix
import mitogen.utils import mitogen.utils
@ -340,12 +341,21 @@ CONNECTION_METHOD = {
} }
class Broker(mitogen.master.Broker):
"""
WorkerProcess maintains at most 2 file descriptors, therefore does not need
the exuberant syscall expense of EpollPoller, so override it and restore
the poll() poller.
"""
poller_class = mitogen.core.Poller
class CallChain(mitogen.parent.CallChain): class CallChain(mitogen.parent.CallChain):
""" """
Extend :class:`mitogen.parent.CallChain` to additionally cause the Extend :class:`mitogen.parent.CallChain` to additionally cause the
associated :class:`Connection` to be reset if a ChannelError occurs. associated :class:`Connection` to be reset if a ChannelError occurs.
This only catches failures that occur while a call is pnding, it is a This only catches failures that occur while a call is pending, it is a
stop-gap until a more general method is available to notice connection in stop-gap until a more general method is available to notice connection in
every situation. every situation.
""" """

@ -174,6 +174,7 @@ Enhancements
latency. latency.
* `#415 <https://github.com/dw/mitogen/issues/415>`_, * `#415 <https://github.com/dw/mitogen/issues/415>`_,
`#491 <https://github.com/dw/mitogen/issues/491>`_,
`#493 <https://github.com/dw/mitogen/issues/493>`_: the interface employed `#493 <https://github.com/dw/mitogen/issues/493>`_: the interface employed
for in-process queues changed from `kqueue for in-process queues changed from `kqueue
<https://www.freebsd.org/cgi/man.cgi?query=kqueue&sektion=2>`_ / `epoll <https://www.freebsd.org/cgi/man.cgi?query=kqueue&sektion=2>`_ / `epoll

Loading…
Cancel
Save