about summary refs log tree commit homepage
path: root/lib/rainbows/http_server.rb
DateCommit message (Collapse)
2009-10-18rev: async response bodies with DevFdResponse middleware
This new middleware should be a no-op for non-Rev concurrency models (or by explicitly setting env['rainbows.autochunk'] to false). Setting env['rainbows.autochunk'] to true (the default when Rev is used) allows (e)poll-able IO objects (sockets, pipes) to be sent asynchronously after app.call(env) returns. This also has a fortunate side effect of introducing a code path which allows large, static files to be sent without slurping them into a Rev IO::Buffer, too. This new change works even without the DevFdResponse middleware, so you won't have to reconfigure your app. This lets us epoll on response bodies that come in from a pipe or even a socket and send them either straight through or with chunked encoding.
2009-10-17DRY setting of rack.multithread
It's more fool-proof this way and prevents us from using idiotic/non-obvious concurrency model names.
2009-10-14rack: expose "rainbows.model" in Rack environment
This allows applications to determine which concurrency model they're running under and possibly make adjustments accordingly. The standard "rack.multithread" isn't enough for some applications to determine what to do, especially when reentrancy is required/recommended.
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-04configuration default tweaks
:Base is default (along with the implied worker_connections=1). This disallows nil for worker_connections, and makes.
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-02initial revision
No tests yet, but the old "gossamer" and "rainbows" branches seem to be basically working.