From: "Glass_saga (Masaki Matsushita)" Date: 2013-07-28T17:22:36+09:00 Subject: [ruby-core:56239] [ruby-trunk - Bug #8625][Assigned] IO#read(len, buf) shortens buf even if data is not read actually Issue #8625 has been updated by Glass_saga (Masaki Matsushita). Status changed from Open to Assigned Assignee set to nobu (Nobuyoshi Nakada) Nakada-san, what do you think? ---------------------------------------- Bug #8625: IO#read(len, buf) shortens buf even if data is not read actually https://bugs.ruby-lang.org/issues/8625#change-40730 Author: no6v (Nobuhiro IMAI) Status: Assigned Priority: Normal Assignee: nobu (Nobuyoshi Nakada) 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/