Method: Fairy::Master#assgin_controller

Defined in:
lib/fairy/master.rb

#assgin_controllerObject



116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
# File 'lib/fairy/master.rb', line 116

def assgin_controller

#       @clients_mutex.synchronize do
#   @clients[fairy.deep_space] = fairy
#       end

  Log::debug(self, "Assgin Controller")
  @controllers_mutex.synchronize do
  controller_id = controller_next_id
  MasterAPP.start_subcommand(CONF.RUBY_BIN, 
   CONF.CONTROLLER_BIN,
   "--master", @deepconnect.local_id.to_s, 
   "--id", controller_id.to_s)
  begin
    timeout(CONF.SUBCMD_EXEC_TIMEOUT) do
 while !@controllers[controller_id]
   @controllers_cv.wait(@controllers_mutex)
 end
    end
  rescue Timeout::Error
    Log::fatal(self, "Can't exec Controller")
    ERR::Fail ERR::CantExecSubcmd, "controller"
  end

# @clientds2controller[fairy.deep_space] = @controllers[controller_id]
  Log::debug(self, "Assgin Controller: Assgined")
  @controllers[controller_id]
  end
end