class DEBUGGER__::UI_UnixDomainServer
公共类方法
new(sock_dir: nil, sock_path: nil) 点击切换源代码
# File debug-1.10.0/lib/debug/server.rb, line 488 def initialize sock_dir: nil, sock_path: nil @sock_path = sock_path @sock_dir = sock_dir || DEBUGGER__.unix_domain_socket_dir @sock_for_fork = nil super() end
公共实例方法
accept() { |sock| ... } 点击切换源代码
# File debug-1.10.0/lib/debug/server.rb, line 496 def accept super # for fork case when @sock_path when sp = CONFIG[:sock_path] @sock_path = sp else @sock_path = DEBUGGER__.create_unix_domain_socket_name(@sock_dir) end ::DEBUGGER__.warn "Debugger can attach via UNIX domain socket (#{@sock_path})" vscode_setup @sock_path if CONFIG[:open] == 'vscode' begin Socket.unix_server_loop @sock_path do |sock, client| @sock_for_fork = sock @client_addr = client yield sock ensure sock.close @sock_for_fork = nil end rescue Errno::ECONNREFUSED => _e ::DEBUGGER__.warn "#{_e.message} (socket path: #{@sock_path})" if @sock_path.start_with? Config.unix_domain_socket_tmpdir # try on homedir @sock_path = Config.create_unix_domain_socket_name(unix_domain_socket_homedir) ::DEBUGGER__.warn "retry with #{@sock_path}" retry else raise end end end