Date | Commit message (Collapse) |
|
Some pipe responses can trigger the on_deferred_write_complete
method without ever re-running the event loop.
This appears to be the result of the occasional t0050 failures.
|
|
In concurrency models long keepalive times are cheap (and thus
more likely to be used), this allows Rainbows! to gracefully
shut down more quickly.
|
|
There's less logic in the server this way and easier
to potentially share code this way.
|
|
There's actually no reason we can't have these methods
in Rainbows::Configurator where it's easier to document
nowadays.
|
|
Fixed in kgio 2.4.0 now
This reverts commit a1168e7d2bfe182896f139d051ef099616fd1646.
|
|
We're changing our default to 1K buffers to save memory. This
should reduce memory usage of idle clients and lower pressure on
the MRI GC. Rails applications using session cookies (the
default) may want to up this to 2K or more.
|
|
|
|
Run under 1.9.3dev
|
|
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.
|
|
There's a lot of code duplication here :<
|
|
We should only attempt to modify the descriptor when we
block, and not for subsequent events.
|
|
We're living on the EDGE and mixing epoll with threads :D
|
|
We know @wr_queue is empty since we just initialized it
and the first thing an HTTP client does is read.
|
|
No need to setting an ivar for most requests
|
|
We'll override it, maybe...
|
|
We don't do Level-Triggered I/O around here
|
|
We'll lower our precision for keepalive timeouts a little
and and reduce our Time object allocation rate.
|
|
We don't need to allocate new string objects for short-lived
strings. We'll pay the price of a constant lookup instead.
|
|
We can eliminate the State module to simplify our code
since 1.3.x keeps better track of things.
|
|
Nothing we can do about that from clients. Perhaps kgio
should just return nil for those...
|
|
Coolio and EventMachine only use level-triggered epoll,
but being Rainbows!, we live on the EDGE!
|