diff --git a/History.md b/History.md index 142e8068d6..9a38780c9a 100644 --- a/History.md +++ b/History.md @@ -13,6 +13,7 @@ * Windows update extconf.rb for use with ssp and varied Ruby/MSYS2 combinations (#2069) * Preserve `BUNDLE_GEMFILE` env var when using `prune_bundler` (#1893) * Send 408 request timeout even when queue requests is disabled (#2119) + * Rescue IO::WaitReadable instead of EAGAIN for blocking read (#2121) * Refactor * Remove unused loader argument from Plugin initializer (#2095) diff --git a/lib/puma/client.rb b/lib/puma/client.rb index 8a37736aaf..7b013732ab 100644 --- a/lib/puma/client.rb +++ b/lib/puma/client.rb @@ -153,7 +153,7 @@ def try_to_finish begin data = @io.read_nonblock(CHUNK_SIZE) - rescue Errno::EAGAIN + rescue IO::WaitReadable return false rescue SystemCallError, IOError, EOFError raise ConnectionError, "Connection error detected during read" @@ -349,7 +349,7 @@ def read_body begin chunk = @io.read_nonblock(want) - rescue Errno::EAGAIN + rescue IO::WaitReadable return false rescue SystemCallError, IOError raise ConnectionError, "Connection error detected during read"