# File lib/debugger/xml/extensions/ide_server.rb, line 27 def proceed return unless @mutex @mutex.synchronize { @proceed.signal } end
# File lib/debugger/xml/extensions/vim_server.rb, line 6 def start_for_vim(options) return if @control_thread Xml.logger.puts("Going to daemonize"); daemonize! Xml.logger.puts("Successfully daemonized"); $stdout.reopen(options.output_file, 'w') $stdout.sync $stderr.reopen($stdout) Xml.logger.puts("Redirected stderr"); @mutex = Mutex.new @proceed = ConditionVariable.new start Xml.logger.puts("Started debugger"); File.unlink(options.socket) if File.exist?(options.socket) server = UNIXServer.new(options.socket) Xml::Vim::Notification.new("establish_connection", options).send Xml.logger.puts("Sent 'established_connection' command"); @control_thread = DebugThread.new do begin while (session = server.accept) Xml.logger.puts("Accepted connection"); interface = Xml::Vim::Interface.new(session, options) processor = Xml::Vim::ControlCommandProcessor.new(interface) self.handler = Xml::Vim::Processor.new(interface) Xml.logger.puts("Going to process commands"); processor.process_commands end rescue Exception => e Xml.logger.puts("INTERNAL ERROR!!! #{$!}") rescue nil Xml.logger.puts($!.backtrace.map{|l| "\t#{l}"}.join("\n")) rescue nil raise e ensure Xml.logger.puts("Closing server"); server.close end end @mutex.synchronize { @proceed.wait(@mutex) } if wait_for_start end
# File lib/debugger/xml/extensions/ide_server.rb, line 5 def start_remote_ide(host, port) return if @control_thread @mutex = Mutex.new @proceed = ConditionVariable.new start @control_thread = DebugThread.new do server = TCPServer.new(host, port) $stderr.printf "Fast Debugger (debugger-xml #{Xml::VERSION}) listens on #{host}:#{port}\n" while (session = server.accept) dispatcher = ENV['IDE_PROCESS_DISPATCHER'] if dispatcher && !dispatcher.include?(":") ENV['IDE_PROCESS_DISPATCHER'] = "#{session.peeraddr[2]}:#{dispatcher}" end interface = Xml::Ide::Interface.new(session) processor = Xml::Ide::ControlCommandProcessor.new(interface) self.handler = Xml::Ide::Processor.new(interface) processor.process_commands end end @mutex.synchronize { @proceed.wait(@mutex) } if wait_for_start end
Generated with the Darkfish Rdoc Generator 2.