Project

General

Profile

Actions

Bug #8625

closed

IO#read(len, buf) shortens buf even if data is not read actually

Bug #8625: IO#read(len, buf) shortens buf even if data is not read actually

Added by no6v (Nobuhiro IMAI) over 12 years ago. Updated over 11 years ago.

Status:
Closed
Target version:
-
ruby -v:
ruby 2.1.0dev (2013-07-11 trunk 41923) [x86_64-linux]
[ruby-core:55951]

Description

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
Actions

Also available in: PDF Atom