Method: Byebug::Remote::Server#start

Defined in:
lib/byebug/remote/server.rb

#start(host, port) ⇒ Object

Start the remote debugging server



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/byebug/remote/server.rb', line 22

def start(host, port)
  return if @thread

  if wait_connection
    mutex = Mutex.new
    proceed = ConditionVariable.new
  end

  server = TCPServer.new(host, port)
  @actual_port = server.addr[1]

  yield if block_given?

  @thread = DebugThread.new do
    while (session = server.accept)
      @main_loop.call(session)

      mutex.synchronize { proceed.signal } if wait_connection
    end
  end

  mutex.synchronize { proceed.wait(mutex) } if wait_connection
end