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

@!attribute [r] 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