- java.lang.Object
-
- org.ojalgo.concurrent.ExternalProcessExecutor.WorkerChannel
-
- Enclosing class:
- ExternalProcessExecutor
private static final class ExternalProcessExecutor.WorkerChannel extends java.lang.ObjectA per-thread, persistent channel to a child JVM. Not thread-safe; each instance must only be used from its owning thread. Kills and restarts the underlying process on demand.
-
-
Field Summary
Fields Modifier and Type Field Description private java.io.InputStreammyChildErrprivate ExternalProcessExecutor.RingBufferOutputmyErrBufferprivate java.lang.ThreadmyErrDrainerprivate java.io.InputStreammyFromChildprivate ProcessOptionsmyOptionsprivate java.lang.ThreadmyOwnerThreadprivate java.lang.ProcessmyProcessprivate java.io.OutputStreammyToChildprivate static intSTDERR_MAX_BYTES
-
Constructor Summary
Constructors Modifier Constructor Description privateWorkerChannel(ProcessOptions options, java.lang.Thread owner, java.lang.Process proc, java.io.OutputStream toChild, java.io.InputStream fromChild, java.io.InputStream err, java.lang.Thread errDrainer, ExternalProcessExecutor.RingBufferOutput errBuffer)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static voiddestroyProcessTree(java.lang.Process proc)(package private) java.lang.StringgetCapturedStderr()(package private) booleanisAlive()(package private) voidkill()(package private) ProcessOptionsoptions()(package private) static ExternalProcessExecutor.WorkerChannelstart(ProcessOptions options)(package private) ExternalProcessExecutor.ProcessResponsetransact(ExternalProcessExecutor.ProcessRequest req, java.time.Duration timeout)
-
-
-
Field Detail
-
STDERR_MAX_BYTES
private static final int STDERR_MAX_BYTES
- See Also:
- Constant Field Values
-
myChildErr
private java.io.InputStream myChildErr
-
myErrBuffer
private final ExternalProcessExecutor.RingBufferOutput myErrBuffer
-
myErrDrainer
private java.lang.Thread myErrDrainer
-
myFromChild
private java.io.InputStream myFromChild
-
myOptions
private final ProcessOptions myOptions
-
myOwnerThread
private final java.lang.Thread myOwnerThread
-
myProcess
private java.lang.Process myProcess
-
myToChild
private java.io.OutputStream myToChild
-
-
Constructor Detail
-
WorkerChannel
private WorkerChannel(ProcessOptions options, java.lang.Thread owner, java.lang.Process proc, java.io.OutputStream toChild, java.io.InputStream fromChild, java.io.InputStream err, java.lang.Thread errDrainer, ExternalProcessExecutor.RingBufferOutput errBuffer)
-
-
Method Detail
-
destroyProcessTree
private static void destroyProcessTree(java.lang.Process proc)
-
start
static ExternalProcessExecutor.WorkerChannel start(ProcessOptions options) throws java.lang.Exception
- Throws:
java.lang.Exception
-
getCapturedStderr
java.lang.String getCapturedStderr()
-
isAlive
boolean isAlive()
-
kill
void kill()
-
options
ProcessOptions options()
-
transact
ExternalProcessExecutor.ProcessResponse transact(ExternalProcessExecutor.ProcessRequest req, java.time.Duration timeout) throws java.lang.Exception
- Throws:
java.lang.Exception
-
-