Fixed gen_stream patch now available

jay <>
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 <>
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