mirror of
https://github.com/puma/puma.git
synced 2022-11-09 13:48:40 -05:00
6777c771d8
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. |
||
---|---|---|
.. | ||
app | ||
cli.rb | ||
client.rb | ||
compat.rb | ||
configuration.rb | ||
const.rb | ||
control_cli.rb | ||
events.rb | ||
jruby_restart.rb | ||
null_io.rb | ||
rack_patch.rb | ||
reactor.rb | ||
server.rb | ||
thread_pool.rb |