Sha256: a2bbf34d99d1d8775ab46adc8e27c6915b6608bbdf794aca9fb40b5851681de4
Contents?: true
Size: 992 Bytes
Versions: 20
Compression:
Stored size: 992 Bytes
Contents
module ChildProcess module JRuby class Pump BUFFER_SIZE = 2048 def initialize(input, output) @input = input @output = output @stop = false end def stop @stop = true @thread && @thread.join end def run @thread = Thread.new { pump } self end private def pump buffer = Java.byte[BUFFER_SIZE].new until @stop read, avail = 0, 0 while read != -1 avail = [@input.available, 1].max avail = BUFFER_SIZE if avail > BUFFER_SIZE read = @input.read(buffer, 0, avail) if read > 0 @output.write(buffer, 0, read) @output.flush end end sleep 0.1 end @output.flush rescue java.io.IOException => ex $stderr.puts ex.message, ex.backtrace if $DEBUG end end # Pump end # JRuby end # ChildProcess
Version data entries
20 entries across 20 versions & 6 rubygems