Module: Yahns

Defined in:
lib/yahns.rb

Overview

yahns exposes no user-visible API outside of the config file. See yhbt.net/yahns/yahns_config.txt for the config documentation and yhbt.net/yahns/ for the homepage. Internals are subject to change.

Defined Under Namespace

Modules: Acceptor, ClientExpireGeneric, ClientExpireTCPI, Daemon, HttpContext, HttpResponse, Log, OpenSSLClient, RackupHandler, ServerMP, SocketHelper, WbufCommon Classes: CapInput, ChunkBody, Config, Fdmap, HttpClient, MaxBody, OpenSSLServer, ProxyPass, Queue, QueueEgg, QueueQuitter, Rack, ReqRes, Server, Sigevent, StreamFile, StreamInput, TCPServer, TeeInput, TmpIO, UNIXServer, Wbuf, WbufLite, WbufStr, Worker

Constant Summary collapse

START =

:stopdoc: We populate this at startup so we can figure out how to reexecute and upgrade the currently running instance of yahns Unlike unicorn, this Hash is NOT a stable/public interface.

  • 0 - the path to the yahns executable

  • :argv - a deep copy of the ARGV array the executable originally saw

  • :cwd - the working directory of the application, this is where

you originally started yahns.

To change your yahns executable to a different path without downtime, you can set the following in your yahns config file, HUP and then continue with the traditional USR2 + QUIT upgrade steps:

Yahns::START[0] = "/home/bofh/2.0.0/bin/yahns"
{
  :argv => ARGV.map(&:dup),
  0 => $0.dup,
}
ClientShutdown =

Raised inside TeeInput when a client closes the socket inside the application dispatch. This is always raised with an empty backtrace since there is nothing in the application stack that is responsible for client shutdowns/disconnects.

Class.new(EOFError)
ClientTimeout =

:nodoc:

Class.new(RuntimeError)
VERSION =

:nodoc:

'1.16.0'.freeze