Sha256: 568ae8c63d75087938f81db9927d8c2d9fc107763f66a5a28d1a975ef14798dc

Contents?: true

Size: 768 Bytes

Versions: 5

Compression:

Stored size: 768 Bytes

Contents

module Debugger
  class << self
    attr_accessor :wait_for_start

    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)
        while (session = server.accept)
          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

    def proceed
      return unless @mutex
      @mutex.synchronize { @proceed.signal }
    end

  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
debugger-xml-0.1.7 lib/debugger/xml/extensions/ide_server.rb
debugger-xml-0.1.6 lib/debugger/xml/extensions/ide_server.rb
debugger-xml-0.1.5 lib/debugger/xml/extensions/ide_server.rb
debugger-xml-0.1.4 lib/debugger/xml/extensions/ide_server.rb
debugger-xml-0.1.3 lib/debugger/xml/extensions/ide_server.rb