Project

General

Profile

« Previous | Next » 

Revision 3cf7d1b5

Added by drbrain (Eric Hodel) almost 12 years ago

  • ext/zlib/zlib.c: Added streaming support to inflate processing.
    This allows zlib streams to be processed without huge memory growth.
    [Feature #6612]
  • NEWS: ditto
  • ext/zlib/zlib.c (zstream_expand_buffer): Uses rb_yield when a block
    is given for streaming support. Refactored to use
    zstream_expand_buffer_into to remove duplicate code.
  • ext/zlib/zlib.c (zstream_expand_buffer_protect): Added wrapper
    function to pass jump state back through GVL-free section to allow
    zstream clean-up before terminating the ruby call.
  • ext/zlib/zlib.c (zstream_expand_buffer_without_gvl): Acquire GVL to
    yield processed chunk of output stream.
  • ext/zlib/zlib.c (zstream_detach_buffer): When a block is given,
    returns Qnil mid-stream and yields the output buffer at the end of
    the stream.
  • test/zlib/test_zlib.rb: Updated tests

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36356 b2dd03c8-39d4-4d8f-98ff-823fe69b080e