Skip to content

Commit 4cd32cb

Browse files
committed
docs: update Changelog for stream-refactor.
1 parent d35bca3 commit 4cd32cb

File tree

1 file changed

+38
-8
lines changed

1 file changed

+38
-8
lines changed

docs/changelog.rst

Lines changed: 38 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,44 @@ Fixes
6161
cleaned up on module exit.
6262

6363

64+
Core Library
65+
~~~~~~~~~~~~
66+
67+
* Logs are more readable, and many :func:`repr` strings are more descriptive.
68+
The old pseudo-function-call format is slowly being migrated to
69+
human-readable output where appropriate. For example,
70+
*"Stream(ssh:123).connect()"* could become *"connecting to ssh:123"*.
71+
72+
* :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.
74+
75+
* `#170 <https://github.com/dw/mitogen/issues/170>`_: to better support child
76+
process management and a future asynchronous connect implementation, a
77+
:class:`mitogen.parent.TimerList` API is available.
78+
79+
* `#419 <https://github.com/dw/mitogen/issues/419>`_: the internal
80+
: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.
85+
86+
* `#419 <https://github.com/dw/mitogen/issues/419>`_: zombie process reaping
87+
has vastly improved, by using the timer API to efficiently poll for a slow
88+
child to finish exiting. Polling avoids the need to install a process-global
89+
`SIGCHLD` handler, or rely on the process-global 'signal file descriptor'
90+
functionality only available in newer Python releases.
91+
92+
* `#419 <https://github.com/dw/mitogen/issues/419>`_: almost all uses of
93+
:func:`os.dup` have been removed, along with almost all cases of manual file
94+
descriptor management. Descriptors are trapped in :func:`os.fdopen` objects
95+
as soon as they are opened, ensuring a leaked object will close itself, and
96+
ensuring every descriptor is fused to a `closed` flag, preventing historical
97+
bugs where a double close could destroy descriptors belonging to an unrelated
98+
stream.
99+
100+
101+
64102
Thanks!
65103
~~~~~~~
66104

@@ -109,14 +147,6 @@ Fixes
109147
potential influx of 2.8-related bug reports.
110148

111149

112-
Core Library
113-
~~~~~~~~~~~~
114-
115-
* `#170 <https://github.com/dw/mitogen/issues/170>`_: to better support child
116-
process management and a future asynchronous connect implementation, a
117-
:class:`mitogen.parent.TimerList` API is available.
118-
119-
120150
Thanks!
121151
~~~~~~~
122152

0 commit comments

Comments
 (0)