Sha256: 1264bed1f69c0f7d896a9a78f0e32aaaac4404c2e2c3ff9c862593d1003dc352

Contents?: true

Size: 803 Bytes

Versions: 1

Compression:

Stored size: 803 Bytes

Contents

require 'json'
require 'socket'

# See Zeus::Server::ClientHandler for relevant documentation
module Zeus
  class Server
    module AcceptorErrorState
      attr_accessor :error

      def print_error(io, error = @error)
        io.puts "#{error.backtrace[0]}: #{error.message} (#{error.class})"
        error.backtrace[1..-1].each do |line|
          io.puts "\tfrom #{line}"
        end
      end

      def run
        register_with_client_handler(Process.pid)
        Zeus.ui.info "starting error-state acceptor `#{@name}`"

        Thread.new do
          loop do
            terminal = @s_acceptor.recv_io
            _ = @s_acceptor.readline
            @s_acceptor << 0 << "\n"
            print_error(terminal)
            terminal.close
          end
        end
      end

    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
zeus-0.3.0 lib/zeus/server/acceptor_error_state.rb