Redirecting to ...
Last Modified
2011-05-16 20:42:10 +0000
Trac URL


A combination of the Coolio and ThreadPool models. This allows Ruby Thread-based concurrency for application processing. It DOES NOT expose a streamable “rack.input” for upload processing within the app. DevFdResponse should be used with this class to proxy asynchronous responses. All network I/O between the client and server are handled by the main thread and outside of the core application dispatch.

Unlike ThreadPool, makes this model highly suitable for slow clients and applications with medium-to-slow response times (I/O bound), but less suitable for sleepy applications.

This concurrency model is designed for Ruby 1.9, and Ruby 1.8 users are NOT advised to use this due to high CPU usage.

:pool_size vs worker_connections

In your Rainbows! config block, you may specify a Thread pool size to limit your application concurrency independently of worker_connections.

Rainbows! do
  use :CoolioThreadPool, :pool_size => 50
  worker_connections 100

In extremely rare cases, this may be combined with Rainbows::AppPool if you have different concurrency capabilities for different parts of your Rack application.

RubyGem Requirements