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.
4 lines
116 B
Ruby
4 lines
116 B
Ruby
run lambda { |env|
|
|
p :body => env['rack.input'].read
|
|
[200, {"Content-Type" => "text/plain"}, ["Hello World"]]
|
|
}
|