-
-
Notifications
You must be signed in to change notification settings - Fork 942
Closed
Milestone
Description
Environment
$ jruby -v
jruby 9.1.12.0 (2.3.3) 2017-06-15 33c6439 Java HotSpot(TM) 64-Bit Server VM 25.40-b25 on 1.8.0_40-b27 +jit [darwin-x86_64]
$ uname -a
Darwin Jankos-MacBook-Pro-2.local 16.6.0 Darwin Kernel Version 16.6.0: Fri Apr 14 16:21:16 PDT 2017; root:xnu-3789.60.24~6/RELEASE_X86_64 x86_64
Expected Behavior
When I use IO.copy_stream on MRI, it limits the chunk size to 16KB.
require "stringio"
class FakeIO
def write(data)
p(data.bytesize)
end
end
io = StringIO.new(100*1024)
IO.copy_stream(io, FakeIO.new)16384
16384
16384
16384
16384
16384
4096
Actual Behavior
On JRuby IO.copy_stream appears not to limit the chunk size, it just always reads the entire content at once, because the output of the above script is
102400
I tried with a StringIO up to 10MB of size, and the behaviour is still the same, all 10MB of content is read at once. The behaviour is the same if I change the source IO into a File object.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels