[ruby-core:60728] [ruby-trunk - Bug #8625] IO#read(len, buf) shortens buf even if data is not read actually

From: glass.saga@...
Date: 2014-02-14 09:47:05 UTC
List: ruby-core #60728
Issue #8625 has been updated by Masaki Matsushita.

Assignee changed from Nobuyoshi Nakada to Masaki Matsushita

----------------------------------------
Bug #8625: IO#read(len, buf) shortens buf even if data is not read actually
https://bugs.ruby-lang.org/issues/8625#change-45150

* Author: Nobuhiro IMAI
* Status: Assigned
* Priority: Normal
* Assignee: Masaki Matsushita
* Category: core
* Target version: 
* ruby -v: ruby 2.1.0dev (2013-07-11 trunk 41923) [x86_64-linux]
* Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN
----------------------------------------
=begin
By r34580, IO#read(len, buf) does not expand buf until data is read actually,
but it still shortens if the original buf size is greater than len.
Is this an intended behavior?

 def m(s)
   IO.pipe do |r, w|
     t = Thread.new{r.read(2, s)}
     Thread.pass until t.stop?
     t.kill
     t.value
   end
 end
 
 (1..3).each do |len|
   s = "x" * len
   s # => "x", "xx", "xxx"
   m(s)
   s # => "x", "xx", "xx"
 end
=end




-- 
http://bugs.ruby-lang.org/

In This Thread