about summary refs log tree commit homepage
path: root/lib/rainbows/event_machine.rb
DateCommit message (Collapse)
2010-05-03event_machine: update documentation for async frameworks
2009-12-30EventMachine: support deferrables in responses
Some async apps rely on more than just "async.callback" and make full use of Deferrables provided by the EM::Deferrable module. Thanks to James Tucker for bringing this to our attention.
2009-12-16get rid of the magic EvCore.setup
It gets in the way of Rev/EM-based models that won't use EvCore. It doesn't actually do anything useful except making an extra layer of indirection to follow.
2009-12-06EventMachine: allow usage as a base class
We'll be adding EventMachine-based concurrency models.
2009-12-05move "async.callback" constant to EvCore
Rev/Packet-based models may support it in the future
2009-11-29event_machine: small noise reduction cleanup
2009-11-28common Rainbows.accept method
2009-11-24rev/event_machine: avoid needless rewinds
No point in rewinding the NULL_IO especially when most requests use them instead of bodies that actually have something.
2009-11-18make keepalive_timeout configurable
And change the default to 2 seconds, most clients can render the page and load all URLs within 2 seconds.
2009-11-18EventMachine: implement keepalive timeout
Fortunately it's easy here.
2009-11-07ev_core: cleanup handling of APP constant
It'll make development of future ev_core-derived things easier, hopefully.
2009-11-07rev/event_machine: simplify keepalive checking a bit
Since the HTTP parser is frozen during app dispatch, there's no point in checking for HTTP keepalive sooner. Of course we check G.alive as late as possible since we could've received a :QUIT signal while app.call was running.
2009-11-06cleanup worker heartbeat and master deathwatch
It turns out neither the EventMachine and Rev classes checked for master death in its heartbeat mechanism. Since we managed to forget the same thing twice, we now have a test case for it and also centralized the code to remove duplication.
2009-11-01event_machine: avoid slurping when proxying
Avoid slurping in case we're a fast backend writing to a slow client. This should prevent our memory usage from exploding when clients are reading slowly.
2009-10-26eventmachine: document our support of "async_synatra"
ref: http://github.com/raggi/async_sinatra
2009-10-26eventmachine: remove unnecessary ivar assignment
It shouldn't be needed, really, favor simpler code here until proven otherwise.
2009-10-26eventmachine: add async_sinatra support
This is should be compatible with how the Thin webserver provides async callback support. See http://github.com/raggi/async_sinatra for the details
2009-10-26eventmachine: require EM 0.12.10
The EM::attach/EM::watch API changed incompatibly in 0.12.10
2009-10-26eventmachine 0.12.8 passes all tests
This means Rainbows::DevFdBody async responses and large file streaming without slurping. This is only with eventmachine 0.12.8, it looks like 0.12.10 changes the attach/watch API...
2009-10-26eventmachine: get basic tests working
log reopens, graceful shutdown, HTTP error responses should all be working now.
2009-10-26rev/evma: move common code for event models into ev_core
EventMachine and Rev models seem to be able to share a lot of common code, so lets share. We may support Packet in the future, too, and end up with a similar programming model there as well.
2009-10-22initial EventMachine support
Working for simple GET requests, completely untested otherwise and most definitely not able to handle async/Comet-style requests yet, either. No tests for this are enabled. This could share a lot of code with the existing Rev model.