Class: JCukeForker::TaskManager

Inherits:
AbstractListener show all
Defined in:
lib/jcukeforker/task_manager.rb

Instance Method Summary collapse

Methods inherited from AbstractListener

#on_display_fetched, #on_display_released, #on_display_starting, #on_display_stopping, #on_eta, #on_run_finished, #on_run_interrupted, #on_run_starting, #on_task_starting, #on_worker_forked, #on_worker_waiting, #update

Constructor Details

#initializeTaskManager



5
6
7
8
# File 'lib/jcukeforker/task_manager.rb', line 5

def initialize()
  @tasks = []
  @worker_sockets = {}
end

Instance Method Details

#add(task) ⇒ Object



10
11
12
# File 'lib/jcukeforker/task_manager.rb', line 10

def add(task)
  @tasks << task
end

#closeObject



28
29
30
# File 'lib/jcukeforker/task_manager.rb', line 28

def close
  @worker_sockets.each {|k, v| v.close}
end

#on_task_finished(worker_path, feature, status) ⇒ Object



19
20
21
# File 'lib/jcukeforker/task_manager.rb', line 19

def on_task_finished(worker_path, feature, status)
  pop_task worker_path
end

#on_worker_dead(worker_path) ⇒ Object



23
24
25
26
# File 'lib/jcukeforker/task_manager.rb', line 23

def on_worker_dead(worker_path)
 socket = @worker_sockets.delete worker_path
 socket.close
end

#on_worker_register(worker_path) ⇒ Object



14
15
16
17
# File 'lib/jcukeforker/task_manager.rb', line 14

def on_worker_register(worker_path)
  @worker_sockets[worker_path] = UNIXSocket.open worker_path
  pop_task worker_path
end