@@ -25,8 +25,8 @@ Enhancements
2525^^^^^^^^^^^^
2626
2727* `#587 <https://github.com/dw/mitogen/issues/587 >`_: partial support for
28- Ansible 2.8 is now available. This implementation does not yet support the
29- new `become plugins
28+ Ansible 2.8 is available. This implementation does not yet support the new
29+ `become plugins
3030 <https://docs.ansible.com/ansible/latest/plugins/become.html> `_
3131 functionality, which will be addressed in a future release.
3232
@@ -70,33 +70,39 @@ Core Library
7070 *"Stream(ssh:123).connect()" * could become *"connecting to ssh:123" *.
7171
7272* :func: `bytearray ` was removed from the list of supported serialization types.
73- It has never been portable, and does not appear to have been used.
73+ It has never been portable, and does not appear to have been used.
7474
7575* `#170 <https://github.com/dw/mitogen/issues/170 >`_: to better support child
7676 process management and a future asynchronous connect implementation, a
7777 :class: `mitogen.parent.TimerList ` API is available.
7878
7979* `#419 <https://github.com/dw/mitogen/issues/419 >`_: the internal
8080 :class: `mitogen.core.Stream ` has been refactored into 7 new classes,
81- separating out protocol behaviour logic, output buffering, line-oriented
82- input parsing, options handling, and connection management. The new
83- connection management implementation is internally asynchronous, laying
84- almost all the groundwork needed for fully asynchronous connect.
81+ modularizing protocol behaviour, output buffering, line-oriented input
82+ parsing, options handling and connection management. Connection setup is
83+ internally asynchronous, laying almost all the groundwork needed for fully
84+ asynchronous connect, proxied Ansible become plug-ins, and integrating
85+ `libssh <https://www.libssh.org/ >`_.
8586
8687* `#419 <https://github.com/dw/mitogen/issues/419 >`_: zombie process reaping
8788 has vastly improved, by using the timer API to efficiently poll for a slow
8889 child to finish exiting. Polling avoids the need to install a process-global
8990 `SIGCHLD ` handler, or rely on the process-global 'signal file descriptor'
9091 functionality only available in newer Python releases.
9192
92- * `#419 <https://github.com/dw/mitogen/issues/419 >`_: almost all uses of
93+ * `#419 <https://github.com/dw/mitogen/issues/419 >`_: most uses of
9394 :func: `os.dup ` have been removed, along with almost all cases of manual file
9495 descriptor management. Descriptors are trapped in :func: `os.fdopen ` objects
9596 as soon as they are opened, ensuring a leaked object will close itself, and
9697 ensuring every descriptor is fused to a `closed ` flag, preventing historical
9798 bugs where a double close could destroy descriptors belonging to an unrelated
9899 stream.
99100
101+ * `a5536c35 <https://github.com/dw/mitogen/commit/a5536c35 >`_: avoid quadratic
102+ buffer management when logging lines received from a child's redirected
103+ standard IO.
104+
105+
100106
101107
102108Thanks!
0 commit comments