class Master::Base

Public Class Methods

new() click to toggle source
# File lib/spark/worker/master.rb, line 32
def initialize
  @port = ARGV[1].to_s.strip.to_i
  @socket = TCPSocket.open('localhost', @port)
  @worker_arguments = @socket.read_string
end

Public Instance Methods

kill_worker_and_wait() click to toggle source
# File lib/spark/worker/master.rb, line 60
def kill_worker_and_wait
  if kill_worker
    @socket.write_int(SUCCESSFULLY_KILLED)
  else
    @socket.write_int(UNSUCCESSFUL_KILLING)
  end
end
receive_message() click to toggle source
# File lib/spark/worker/master.rb, line 47
def receive_message
  command = @socket.read_int

  case command
  when CREATE_WORKER
    create_worker
  when KILL_WORKER
    kill_worker
  when KILL_WORKER_AND_WAIT
    kill_worker_and_wait
  end
end
run() click to toggle source
# File lib/spark/worker/master.rb, line 38
def run
  selector = NIO::Selector.new
  monitor = selector.register(@socket, :r)
  monitor.value = Proc.new { receive_message }
  loop {
    selector.select {|monitor| monitor.value.call}
  }
end