about summary refs log tree commit homepage
path: root/lib/rainbows/epoll/client.rb
DateCommit message (Collapse)
2011-05-10configurator: move validation logic over
There's actually no reason we can't have these methods in Rainbows::Configurator where it's easier to document nowadays.
2011-05-08Revert "epoll: fixes for Ruby 1.9.3dev"
Fixed in kgio 2.4.0 now This reverts commit a1168e7d2bfe182896f139d051ef099616fd1646.
2011-05-03add client_header_buffer_size tuning parameter
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.
2011-04-11epoll: fixes for Ruby 1.9.3dev
2011-03-20fix various warnings with "check-warnings" target
Run under 1.9.3dev
2011-03-10switch from IO#sendfile_nonblock to IO#trysendfile
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.
2011-02-05*epoll: consolidate re-run logic
There's a lot of code duplication here :<
2011-01-26epoll/client: avoid unnecessary Epoll#set calls
We should only attempt to modify the descriptor when we block, and not for subsequent events.
2011-01-24epoll/client: thread-safety for write queuing
We're living on the EDGE and mixing epoll with threads :D
2011-01-21epoll/client: minor optimization
We know @wr_queue is empty since we just initialized it and the first thing an HTTP client does is read.
2011-01-21ev_core: force input to be given to app_call
No need to setting an ivar for most requests
2011-01-21epoll/client: factor out on_close method
We'll override it, maybe...
2011-01-21epoll/client: remove unused client
We don't do Level-Triggered I/O around here
2011-01-21epoll: reduce expiration calls and Time objects
We'll lower our precision for keepalive timeouts a little and and reduce our Time object allocation rate.
2011-01-21ev_core: garbage reduction
We don't need to allocate new string objects for short-lived strings. We'll pay the price of a constant lookup instead.
2011-01-21epoll: use newer sleepy_penguin
We can eliminate the State module to simplify our code since 1.3.x keeps better track of things.
2011-01-20epoll: ignore ECONNRESET errors
Nothing we can do about that from clients. Perhaps kgio should just return nil for those...
2011-01-19initial edge-triggered epoll model
Coolio and EventMachine only use level-triggered epoll, but being Rainbows!, we live on the EDGE!