about summary refs log tree commit homepage
path: root/lib
DateCommit message (Collapse)
2009-10-05Rainbows! 0.1.0 v0.1.0
Not using the Unicorn version number with this since it's not remotely close to Unicorn in stability.
2009-10-05huge documentation revamp
2009-10-04limit Rainbows! configuration method exposure
Only inject this method into Unicorn::Configurator to avoid polluting the namespace.
2009-10-04vary defaults for worker_connections
Various concurrency models work and scale differently, pick counts that make a reasonable amount of sense...
2009-10-04Add support for the ThreadSpawn concurrency model
This is somewhat like the original model found in Mongrel, except we refuse to accept() connections unless we have slots available. Even though we support multiple listen sockets, we only accept() synchronously to simplify processing and to avoid having to synchronize ThreadGroup management.
2009-10-04revactor: graceful exit if a listening actor dies
It's usually a bad sign if we have unhandled exceptions in the listener loops, so we'll exit just in case.
2009-10-04revactor: implement actor limiting
While we're at it, make it properly 100% message-driven so there's no more busy-waiting and polling for dead actors, No we just wait for client actors to die off and resume listener actors if they stopped accepting.
2009-10-04doc updates; use "Rainbows!", not "Rainbows"
Also add notes about development things and the configuration language which uses "Rainbows!". Calling ourselves "Rainbows!" will help us be taken even more seriously than if the project were just called "Rainbows"
2009-10-04revactor: allow UNIX domain socket listeners
Revactor may be gaining support for UNIX domain socket listeners soon, so factor out revactorize_listeners into its own method that can conditionally handle UNIX domain sockets if our Revactor version supports it. Patch for Revactor submitted here: http://rubyforge.org/pipermail/revactor-talk/2009-October/000035.html
2009-10-04configuration default tweaks
:Base is default (along with the implied worker_connections=1). This disallows nil for worker_connections, and makes.
2009-10-03thread_pool: Thread#kill! is gone in 1.9.2
So are Thread#terminate! and Thread#exit!, so we use Thread#kill instead.
2009-10-03common Base class for all concurrency models
They're similar enough (especially as far as the constants go) and allows a :Base to be used which basically acts like plain Unicorn but with HTTP keepalive + pipelining support
2009-10-03revactor: workaround for Revactor still using Rev::Buffer
Patch submitted upstream: http://rubyforge.org/pipermail/revactor-talk/2009-October/000034.html
2009-10-03remove Configurator and use Rainbows! block
This allows the server to be configured by doing something like this inside an existing Unicorn configuration file: Rainbows! do use :Revactor worker_connections 50 end This should make it obvious we're using Rainbows-only features.
2009-10-03http_server: simplify use=
I didn't remember extend when this was originally implemented.
2009-10-03configurator: rainbows settings must be in a block
This should make it easier to maintain/read configs that are Rainbows-specific
2009-10-03configurator: set worker_connections correctly
2009-10-02set "encoding: binary" for all files
2009-10-02initial revision
No tests yet, but the old "gossamer" and "rainbows" branches seem to be basically working.