Fixed gen_stream patch now available
jay@REDACTED
jay@REDACTED
Mon Jan 31 19:12:27 CET 2011
With special thanks to Tuncer for the git help, I now have a clean
commit of gen_stream with a fix for the shell_SUITE error. The
problem that I discovered was there were some leaked internal
processes which were causing c:i() to fail when listing information
about active processes. I have added calls to c:i() in the test suite
to ensure that the problem doesn't recur.
Since I can't directly observe the shell_SUITE error that you see,
there may be other issues that remain but a few days of tests
should bear out any unresolved errors.
git fetch git://github.com/jaynel/otp.git gen_stream
commit a2423e4d428151d895ba003183421a14eefbde48
Author: Jay Nelson <jay@REDACTED>
Date: Mon Jan 31 09:42:02 2011 -0800
Add gen_stream behaviour
This is a new OTP behaviour designed to serve serial streams
as an ordered sequence of "blocks" of data. The stream is
loaded concurrently to a process-striped internal buffer so
that slow streams such as disk files can be efficiently
delivered. The internal buffering can be massaged by
supplying a transform function to manipulate the data blocks
between the source and the internal buffers to perform
such tasks as chopping lines of text, compressing /
decompressing or encrypting / unencrypting.
The abstraction also allows the creation of functionally
generated streams and infinite streams. Both of these
cases allow for continuous streaming without a large
memory footprint.
This patch includes a new module in stdlib (gen_stream.erl),
a new test suite (gen_stream_SUITE.erl) and a new page in
the documentation (gen_stream.xml).
jay
More information about the erlang-patches
mailing list