| Index: net/spdy/spdy_session.cc
|
| diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc
|
| index 02336399f4e2eb577f2bca8b35a9c283d0252af6..51c5714cf51910430afed74e03e40e19707077f7 100644
|
| --- a/net/spdy/spdy_session.cc
|
| +++ b/net/spdy/spdy_session.cc
|
| @@ -1398,9 +1398,9 @@ int SpdySession::DoReadLoop(ReadState expected_read_state, int result) {
|
| if (result == ERR_IO_PENDING)
|
| break;
|
|
|
| - if (bytes_read_without_yielding > kYieldAfterBytesRead ||
|
| - time_func_() > yield_after_time) {
|
| - read_state_ = READ_STATE_DO_READ;
|
| + if (read_state_ == READ_STATE_DO_READ &&
|
| + (bytes_read_without_yielding > kYieldAfterBytesRead ||
|
| + time_func_() > yield_after_time)) {
|
| base::ThreadTaskRunnerHandle::Get()->PostTask(
|
| FROM_HERE,
|
| base::Bind(&SpdySession::PumpReadLoop, weak_factory_.GetWeakPtr(),
|
|
|