ProcessIO
This class is used to control the I/O of every scala.sys.process.Process.
This class is used to control the I/O of every
scala.sys.process.Process. The functions used to create it will be
called with the process streams once it has been started. It might not be
necessary to use ProcessIO
directly --
scala.sys.process.ProcessBuilder can return the process output to the
caller, or use a scala.sys.process.ProcessLogger which avoids direct
interaction with a stream. One can even use the factories at BasicIO
to
create a ProcessIO
, or use its helper methods when creating one's own
ProcessIO
.
When creating a ProcessIO
, it is important to close all streams when
finished, since the JVM might use system resources to capture the process
input and output, and will not release them unless the streams are
explicitly closed.
ProcessBuilder
will call writeInput
, processOutput
and processError
in separate threads, and if daemonizeThreads is true, they will all be
marked as daemon threads.
- Value Params
- daemonizeThreads
Indicates whether the newly spawned threads that will run
processOutput
,processError
andwriteInput
should be marked as daemon threads.- processError
Function that will be called with the
InputStream
from which all error output of the process must be read from. This will be called in a newly spawned thread.- processOutput
Function that will be called with the
InputStream
from which all normal output of the process must be read from. This will be called in a newly spawned thread.- writeInput
Function that will be called with the
OutputStream
to which all input to the process must be written. This will be called in a newly spawned thread.
- Note
Failure to close the passed streams may result in resource leakage.
Value members
Constructors
Concrete methods
Creates a new ProcessIO
, with daemonizeThreads
true.
Creates a new ProcessIO
, with daemonizeThreads
true.
Creates a new ProcessIO
with a different handler for the error output.
Creates a new ProcessIO
with a different handler for the error output.
Creates a new ProcessIO
with a different handler for the process input.
Creates a new ProcessIO
with a different handler for the process input.