パイプからデータを読み取ることを使用してストリーミング Gzip デコンプレッサを実装しようとしてZlib::GzipReader
いますが、ブロックしない方法でそれを行う方法がわかりません。関連するコードは次のとおりです。
# In thread A
read, write = IO.pipe
reader = Zlib::GzipReader.new(read) # this blocks
reader.each_line do |line|
puts "Yay line! #{line}"
end
# In thread B
streaming_http_response do |gzip_chunk|
write.puts(some_chunk)
end
圧縮された文字列全体をリーダーに読み込まずに、解凍されたコンテンツをストリーミングするにはどうすればよいですか?