class Toys::Utils::Exec::Controller

def initialize(name, controller_streams, captures, pid, join_threads, result_callback)

# @private
def initialize(name, controller_streams, captures, pid, join_threads, result_callback)
  @name = name
  @in = controller_streams[:in]
  @out = controller_streams[:out]
  @err = controller_streams[:err]
  @captures = captures
  @pid = @exception = @wait_thread = nil
  case pid
  when ::Integer
    @pid = pid
    @wait_thread = ::Process.detach(pid)
  when ::Exception
    @exception = pid
  end
  @join_threads = join_threads
  @result_callback = result_callback
  @result = nil
end