stop_server(@signature) is not closing port : EventMachine :Ruby

118 Views Asked by At

I am workng on the eventmachine . And needs to restart the servers with port in loop .

I am trying to stop the servers with the code stop_server(@signature) id but if I reconnect it , it gives me error of

/gems/eventmachine-1.0.0/lib/eventmachine.rb:526:in `start_tcp_server': no acceptor (port is in use or requires root privileges) (RuntimeError)

Here is the code

    $servers = {}
    EventMachine::run {
        [1,2,3].each do |port|
            $servers[:em_server_id] =  EventMachine::start_server "", port, EchoServer, port
            restart_server($servers[:em_server_id],port)
        end
    }

    def restart_server(s,port)
      EventMachine::stop_server(s)
      $servers[:em_server_id] = nil
      EventMachine::start_server "", port, EchoServer, port
    end

If i get better way sloving restart server that will also help else I need to stop and start servers again in that way only.

0

There are 0 best solutions below