class ProcessExecuter::MonitoredPipe
def initialize(*writers, chunk_size: 100_000)
-
chunk_size
(Integer
) -- the size of the chunks to read from the pipe -
writers
(Array<#write>
) -- as data is read from the pipe, it is written to these writers
def initialize(*writers, chunk_size: 100_000) @writers = writers @chunk_size = chunk_size @pipe_reader, @pipe_writer = IO.pipe @state = :open @thread = Thread.new do Thread.current.report_on_exception = false Thread.current.abort_on_exception = false monitor end end