Date | Commit message (Collapse) |
|
Rainbows! is a bit bigger than Unicorn and usually requires
being sandboxed, too.
|
|
HTTP headers are usually smaller than 4K, so 16K was way too
much for most users and often caused unnecessary GC runs.
EventMachine and Coolio models can all share the same initial
read buffer, so it's less urgent that they get this lowered for
now...
|
|
This one actually has a realistic chance of running
hundreds/thousands of clients, and 32K per-client is
a huge amount.
|
|
Epoll#wait and epoll_wait(2) timeouts are in milliseconds,
not seconds. This affects xepoll, too.
|
|
Noticed under 1.8.7
|
|
Whee! This is going to be awesome.
|
|
They're probably ready for general use in a very limited
capacity...
|
|
Too much NIH and too fragile.
|
|
|
|
|
|
No need to expose things that don't need exposing.
|
|
This may change again in the future, but it
paves the way for simplifying this code...
|
|
This should make code review easier.
|
|
Might as well, threads are free and cheap on 64-bit
|
|
In case people try to do C10K, make life easier for them.
|
|
Thread-switching sometimes takes too long under YARV, so we
force a switch since the watchdog thread is lower-priority.
|
|
Should be fixed in 1.9.3 and/or future Kgio...
|
|
Might as well use the latest and greatest.
|
|
Ugh the old way was gross.
|
|
Revactor doesn't seem to work under 1.9.3dev, and Revactor is
dead upstream.
|
|
|
|
This attempts to fix all the danger associated with using
Thread#raise. Hopefully I succeeded.
Note: this logic _cannot_ be used to fix the timeout.rb
module in the Ruby standard library, that one needs to
allow nested timeouts (which seems impossible).
|
|
It's in the JoinThreads module now
|
|
|
|
They're not bad with slow clients a previously thought.
|
|
No need to obfuscate what it's doing
|
|
Run under 1.9.3dev
|
|
|
|
Fortunately it's a deprecated class that nobody
uses...
|
|
We now use IO#trysendfile in the sendfile 1.1.0 to reduce the
cost of generating backtraces for slow clients (from EAGAIN).
Nothing new for people not serving static files (but more
on the way).
Existing "sendfile" gem users must upgrade to 1.1.0
or risk being left without sendfile support at all:
http://bogomips.org/rainbows.git/patch?id=cd8a874d
|
|
Latest and greatest :D
|
|
Ugh, and still no usable IO.copy_stream under 1.9.2 :<
|
|
IO#trysendfile does not raise exceptions for common EAGAIN
errors, making it far less expensive to use with the following
concurrency models:
* Coolio
* CoolioFiberSpawn
* Revactor
* FiberSpawn
* FiberPool
This requires the new sendfile 1.1.0 RubyGem and removes support
for the sendfile 1.0.0. All sendfile users must upgrade or be
left without sendfile(2) support. IO#sendfile behaves the same
if you're using a multi-threaded concurrency option, but we
don't detect nor use it unless IO#trysendfile exists.
|
|
New sendfile gem will give us IO#trysendfile.
We might as well use and test the latest and greatest
versions of everything else since thats what users
pull in by default.
|
|
It's a simpler interface and avoids allocating an array
which is nice.
|
|
Ruby 1.9.3dev switched to BSD but we remain under the same terms
as the old Ruby 1.8 license. Mongrel2 exists now and also uses
the BSD, so don't confuse people with that, either.
|
|
The Cramp::Controller namespace is gone.
|
|
Small bug fixes that have been sitting around, not much but
it's already been one month since our last release.
* Unicorn dependency updated to 3.4.0, so we get IPv6 support
and Kgio.autopush support for ":tcp_nopush => true" users.
* Optional :pool_size argument is fixed for NeverBlock and
CoolioThreadPool users.
* Mostly minor internal code cleanups
* Sunshowers support removed, it was out-of-date and
unmaintained. Cramp remains supported for now.
* X-Rainbows-* response headers support removed, nobody used it.
There are severalnew features in this release not documented
here. Consider any new features not mentioned in these release
notes to be subject to removal/renaming in future releases.
|
|
* Fixes Ruby 1.9.3dev deprecation warnings
* Fixes some documentation dependency issues
|
|
Of course some folks believe nothing in Rainbows! is :.
|
|
This conflicts with ports clients may automatically use
in the ephemeral range.
This reverts commit c9a7560bb684bbdadb641ebc7597303f38c37d4f.
|
|
This will help prevent us from breaking :pool_size in the
future.
|
|
Actually use the Rainbows::O constant for use
[ew: rewritten commit message subject]
Acked-by: Eric Wong <normalperson@yhbt.net>
|
|
No need for these
|
|
Don't need to document things that aren't ready, yet.
|
|
No need to allocate a proc every time when we can just
yield much more efficiently.
|
|
We were needlessly allocating objects even when using yield.
|
|
acceptor thread pools could use some work, still
|
|
There's a lot of code duplication here :<
|
|
Array#each will do..
|