Class: DEBUGGER__::UI_UnixDomainServer
Relationships & Source Files | |
Super Chains via Extension / Inclusion / Inheritance | |
Class Chain:
self,
UI_ServerBase ,
UI_Base
|
|
Instance Chain:
self,
UI_ServerBase ,
UI_Base
|
|
Inherits: |
DEBUGGER__::UI_ServerBase
|
Defined in: | lib/debug/server.rb |
Class Method Summary
UI_ServerBase
- Inherited
Instance Attribute Summary
Instance Method Summary
UI_ServerBase
- Inherited
UI_Base
- Inherited
Constructor Details
.new(sock_dir: nil, sock_path: nil) ⇒ UI_UnixDomainServer
# File 'lib/debug/server.rb', line 478
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
Instance Method Details
#accept
[ GitHub ]# File 'lib/debug/server.rb', line 486
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.} (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