class Contender::ExecutorService

@abstract

Public Instance Methods

await_termination(timeout) click to toggle source

@abstract @param [Float] timeout @return [Boolean]

# File lib/contender/executor_service.rb, line 19
def await_termination(timeout)
  raise NotImplementedError
end
future_for(task) click to toggle source

@api public @param [Object] task @return [FutureTask]

# File lib/contender/executor_service.rb, line 89
def future_for(task)
  FutureTask.new task
end
invoke_all(tasks) click to toggle source

@api public @param [Array<Object>] tasks @return [Array<FutureTask>]

# File lib/contender/executor_service.rb, line 52
def invoke_all(tasks)
  finished = false
  futures = Array.new

  begin
    tasks.each do |task|
      future = create_task_for task

      futures.push future
      execute future
    end

    futures.each do |future|
      unless future.done?
        begin
          future.result
        rescue CancellationError
        rescue ExecutionError
          # The caller can deal with these errors
        end
      end
    end

    finished = true
    futures
  ensure
    unless finished
      futures.each do |future|
        future.cancel true
      end
    end
  end
end
shutdown() click to toggle source

@abstract @return [undefined]

# File lib/contender/executor_service.rb, line 6
def shutdown
  raise NotImplementedError
end
shutdown!() click to toggle source

@abstract @return [Array]

# File lib/contender/executor_service.rb, line 12
def shutdown!
  raise NotImplementedError
end
shutdown?() click to toggle source

@abstract @return [Boolean]

# File lib/contender/executor_service.rb, line 25
def shutdown?
  raise NotImplementedError
end
submit(callable = nil, &block) click to toggle source

@api public @raise [ArgumentError] If neither a block nor callable were given @param [Object] callable @return [FutureTask]

# File lib/contender/executor_service.rb, line 39
def submit(callable = nil, &block)
  callable ||= block

  raise ArgumentError unless callable

  future = future_for callable
  execute future
  future
end
terminated?() click to toggle source

@abstract @return [Boolean]

# File lib/contender/executor_service.rb, line 31
def terminated?
  raise NotImplementedError
end