about summary refs log tree commit homepage
tag namev0.2.0 (eef26a1ac0231af6ef064520b778e4d350ae2578)
tag date2009-10-15 01:01:53 -0700
tagged byEric Wong <normalperson@yhbt.net>
tagged objectcommit 6611d1111d...
Rainbows! 0.2.0
This release adds preliminary Rev support for network
concurrency under Ruby 1.8 and Ruby 1.9.  There are caveats to
this model and reading the RDoc for Rainbows::Rev is

Rainbows::AppPool Rack middleware is now available to limit
application concurrency on a per-process basis independently of
network concurrency.  See the RDoc for this class for further

Per-client timeouts have been removed, see
for the reasoning.

Rack environment changes:

* "rack.multithread" is now only true for models with "Thread"
  in their name.  Enabling thread-safe (but not reentrant) code
  may actually be harmful for Revactor.

* "rainbows.model" is now exposed so the application can easily
  figure out which network concurrency model is in use.

Bugfixes include better shutdown and error handling for all
existing models, OpenBSD compatibility for the per-process
heartbeat (same as found in unicorn v0.93.3).

Eric Wong (54):
      add SIGNALS doc to RDoc
      SIGNALS: add Rainbows!-specific notes
      doc: better "Rainbows!" RDoc examples and linkage
      tests: generate random_blob once for all tests
      tests: move trash files to their own trash/ directory
      t0000: basic test includes keepalive + pipelining
      tests: simplify temporary file management
      tests: add dbgcat() utility method
      fchmod heartbeat flips between 0/1
      tests: add revactor pipelining/keepalive test
      thread_spawn: trap EAGAIN on accept_nonblock
      thread_spawn: more robust loop
      thread_spawn: non-blocking accept() shouldn't EINTR
      tests: enable pipefail shell option if possible
      README for test suite
      tests: TEST_OPTS => SH_TEST_OPTS
      tests: update TRACER examples in makefile
      tests: create a bad exit code by default
      thread_spawn: clean up nuking of timed-out threads
      factor out common listen loop error handling
      graceful exit on trap TypeError from IO.select
      expand and share init_worker_process
      revactor: break on EBADF in the accepting actors
      revactor: cleanups and remove redundancy
      No need to be halving timeout, already done for us
      revactor: graceful death of keepalive clients
      revactor: continue fchmod beat in graceful exit
      cleanup thread models, threads no longer time out
      revactor: fix graceful shutdown timeouts
      Fix graceful shutdowns for threaded models
      SIGINT/SIGTERM shuts down instantly in workers
      tests: check for common exceptions with "Error"
      DEPLOY: update with notes on DoS potential
      tests: add reopen logs test for revactor
      vs Unicorn: use diagrams for concurrency models
      vs Unicorn: fix wording to be consistent with diagrams
      vs Unicorn: fix copy+paste errors and grammar fail
      README: alter reply conventions for the mailing list
      preliminary Rev support
      local.mk.sample: use ksh93 as default $(SHELL)
      rack.multithread is only true for Thread* models
      Rev: general module documentation + caveats
      Rev: fix error handling for parser errors
      t3003: set executable bit
      documentation updates (mostly on network models)
      rack: expose "rainbows.model" in Rack environment
      tests: enforce rack.multithread and rainbows.model
      README: update URLs
      README: update with Rev model caveats
      Add Rainbows::AppPool Rack middleware
      t4003: chmod +x
      local.mk.sample: use rev 0.3.1 instead
      README: link to AppPool and extra note about Rev model
      Rainbows! 0.2.0