The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
		       Stem::AsyncIO Design Notes

The Stem::AsyncIO module provides a buffered I/O interface to sockets
and process handles. It is used by a variety of modules such as
Stem::Proc, Stem::SockMsg, Stem::Portal::Stream to do the common
function of doing their buffered I/O.

The constructor takes an owner object and up to 3 handles: input, output
and stderr (for processes). The input and stderr handles are monitored
with read events and when data is available, it is read and a callback
is made to the owner object with the data as its argument.

The write handle is fully buffered and the module provides non-blocking
asynchronous output to it. Data to be sent to the handle is passed in
with the write method. If there is any output data buffered, a write
event monitors the handle and triggers a callback when data can be
written to it. The callback writes as much data as possible to the write
handle.

If the read or stderr handle is being used and it is closed (the socket
is disconnected or the process exits), this is detected and a callback
to the owner object is made.

This module is only used internally and should not be configured.