Sha256: 25d2bdcbbea0223b4cc8c652c2b84d3b4094be44ebafad7cca0477debb0f6418

Contents?: true

Size: 1.92 KB

Versions: 41

Compression:

Stored size: 1.92 KB

Contents

require 'puma/runner'

module Puma
  class Single < Runner
    def stats
      b = @server.backlog
      r = @server.running
      %Q!{ "backlog": #{b}, "running": #{r} }!
    end

    def restart
      @server.begin_restart
    end

    def stop
      @server.stop false
    end

    def halt
      @server.halt
    end

    def stop_blocked
      log "- Gracefully stopping, waiting for requests to finish"
      @control.stop(true) if @control
      @server.stop(true)
    end

    def jruby_daemon?
      daemon? and @cli.jruby?
    end

    def run
      already_daemon = false

      if jruby_daemon?
        require 'puma/jruby_restart'

        if JRubyRestart.daemon?
          # load and bind before redirecting IO so errors show up on stdout/stderr
          load_and_bind
        end

        already_daemon = JRubyRestart.daemon_init
      end

      output_header "single"

      if jruby_daemon?
        if already_daemon
          JRubyRestart.perm_daemonize
        else
          pid = nil

          Signal.trap "SIGUSR2" do
            log "* Started new process #{pid} as daemon..."

            # Must use exit! so we don't unwind and run the ensures
            # that will be run by the new child (such as deleting the
            # pidfile)
            exit!(true)
          end

          Signal.trap "SIGCHLD" do
            log "! Error starting new process as daemon, exitting"
            exit 1
          end

          pid = @cli.jruby_daemon_start
          sleep
        end
      else
        load_and_bind

        if daemon?
          log "* Daemonizing..."
          Process.daemon(true)
        end
      end

      @cli.write_state

      start_control

      @server = server = start_server

      unless @options[:daemon]
        log "Use Ctrl-C to stop"
      end

      redirect_io

      @cli.events.fire_on_booted!

      begin
        server.run.join
      rescue Interrupt
        # Swallow it
      end
    end
  end
end

Version data entries

41 entries across 41 versions & 4 rubygems

Version Path
puma-2.10.0-java lib/puma/single.rb
puma-2.10.0 lib/puma/single.rb
wendell-puma-2.9.2 lib/puma/single.rb
rsense-server-0.5.18 vendor/gems/puma-2.8.2-java/lib/puma/single.rb
puma-2.9.2-java lib/puma/single.rb
puma-2.9.2 lib/puma/single.rb
puma-2.9.1-java lib/puma/single.rb
puma-2.9.1 lib/puma/single.rb
puma-2.9.0-java lib/puma/single.rb
puma-2.9.0 lib/puma/single.rb
rsense-server-0.5.17 vendor/gems/puma-2.8.2-java/lib/puma/single.rb
rsense-server-0.5.16 vendor/gems/puma-2.8.2-java/lib/puma/single.rb
rsense-server-0.5.15 vendor/gems/puma-2.8.2-java/lib/puma/single.rb
rsense-server-0.5.14 vendor/gems/puma-2.8.2-java/lib/puma/single.rb
rsense-server-0.5.13 vendor/gems/puma-2.8.2-java/lib/puma/single.rb
rsense-server-0.5.12 vendor/gems/puma-2.8.2-java/lib/puma/single.rb
rsense-server-0.5.11 vendor/gems/puma-2.8.2-java/lib/puma/single.rb
rsense-server-0.5.10 vendor/gems/puma-2.8.2-java/lib/puma/single.rb
rsense-server-0.5.9 vendor/gems/puma-2.8.2-java/lib/puma/single.rb
rsense-server-0.5.8 vendor/gems/puma-2.8.2-java/lib/puma/single.rb