class Puma::Single
that this inherits from.
gets created via the ‘start_server` method from the `Puma::Runner` class
At the core of this class is running an instance of `Puma::Server` which
i.e. only using “threaded” mode. For example `$ puma -t 1:5`
to boot and serve a Ruby application when no puma “workers” are needed
This class is instantiated by the `Puma::Launcher` and used
def halt
def halt @server&.halt end
def restart
def restart @server&.begin_restart end
def run
def run output_header "single" load_and_bind Plugins.fire_background @launcher.write_state start_control @server = server = start_server server_thread = server.run log "Use Ctrl-C to stop" redirect_io @events.fire_on_booted! debug_loaded_extensions("Loaded Extensions:") if @log_writer.debug? begin server_thread.join rescue Interrupt # Swallow it end end
def stats
def stats { started_at: utc_iso8601(@started_at) }.merge(@server.stats).merge(super) end
def stop
def stop @server&.stop false end
def stop_blocked
def stop_blocked log "- Gracefully stopping, waiting for requests to finish" @control&.stop true @server&.stop true end