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. |
||
---|---|---|
.. | ||
puma | ||
rack/handler | ||
puma.rb |