1
0
Fork 0
mirror of https://github.com/puma/puma.git synced 2022-11-09 13:48:40 -05:00
Commit graph

13 commits

Author SHA1 Message Date
Evan Phoenix
b61a372ada Syncronize all access to @timeouts. Fixes #208 2013-03-18 16:41:59 -07:00
Evan Phoenix
5d1fd4e74b Cleanup pipes properly. Fixes #182 2013-02-04 22:31:40 -08:00
Evan Phoenix
bd5d824ce5 Write 400 on HTTP parse error. Fixes #142 2012-09-05 22:09:42 -07:00
Evan Phoenix
810144e77f Close kept alive sockets on restart. Fixes #144 2012-09-02 23:33:09 -04:00
Evan Phoenix
b2550acfaf Handle more errors trying to read client data. Fixes #138 2012-08-27 10:56:43 -07:00
Evan Phoenix
cd83b2f304 Minor cleanup, use IOError instead of EOFError 2012-08-10 22:41:35 -07:00
Evan Phoenix
870767a246 Properly shutdown the reactor thread 2012-08-10 10:10:30 -07:00
Evan Phoenix
70bbef66cf Work around JRuby buffering the request inside #accept 2012-08-09 16:54:55 -07:00
Evan Phoenix
6b72885be6 Fix errant closing of sockets 2012-07-30 17:12:23 -06:00
Evan Phoenix
765eed127a Properly update @sleep_for when there are timeout'd clients 2012-07-24 17:25:03 -07:00
Evan Phoenix
e13d9ba9e9 Be sure to cleanup and close bad client sockets 2012-07-23 17:08:11 -07:00
Evan Phoenix
44c8c1ab50 Some minor cleanup 2012-07-23 17:00:53 -07:00
Evan Phoenix
6777c771d8 Add separate IO reactor to defeat slow clients
Previously, the app thread would be in charge of reading the request
directly from the client. This resulted in a set of slow clients being
able to completely starve the app thread pool and prevent any further
connections from being handled.

This new organization uses a seperate reactor thread that is in charge
of responding when a client has more data, buffering the data and
attempting to parse the data. When the data represents a fully realized
request, only then is it handed to the app thread pool. This means we
trust apps to not starve the pool, but don't trust clients.
2012-07-23 10:26:52 -07:00