class Orchestra::ThreadPool::Job

Constants

Failed

Attributes

block[RW]

Public Class Methods

new(block) click to toggle source
# File lib/orchestra/thread_pool.rb, line 121
def initialize block
  @block = block
  @output_queue = Queue.new
end

Public Instance Methods

done?() click to toggle source
# File lib/orchestra/thread_pool.rb, line 126
def done?
  not @output_queue.empty?
end
execute() click to toggle source
# File lib/orchestra/thread_pool.rb, line 130
def execute
  @output_queue.push block.call
end
set_error(error) click to toggle source
# File lib/orchestra/thread_pool.rb, line 134
def set_error error
  @error = error
  @output_queue.push Failed
end
wait() click to toggle source
# File lib/orchestra/thread_pool.rb, line 139
def wait
  result = @output_queue.pop
  changed
  if result == Failed
    notify_observers :failed, error
    raise error
  else
    notify_observers :finished, result
  end
  result
end