Sha256: dd5dcb1e5386399670bfff1043af0e77f6015ccf6bb7d140a92dc9a7e0ff8eeb
Contents?: true
Size: 987 Bytes
Versions: 6505
Compression:
Stored size: 987 Bytes
Contents
# frozen_string_literal: true require "socket" module Byebug module Remote # # Server for remote debugging # class Server attr_reader :actual_port, :wait_connection def initialize(wait_connection:, &block) @thread = nil @wait_connection = wait_connection @main_loop = block end # # Start the remote debugging server # 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 end end end
Version data entries
6,505 entries across 6,501 versions & 34 rubygems