| Index: net/socket/socket_test_util.cc
|
| diff --git a/net/socket/socket_test_util.cc b/net/socket/socket_test_util.cc
|
| index 20983aec00dcded9e6b009dc80261342db6cb444..4df69d2fa1ccfe46bed35f6bf2e6e54d87fe2f47 100644
|
| --- a/net/socket/socket_test_util.cc
|
| +++ b/net/socket/socket_test_util.cc
|
| @@ -531,6 +531,15 @@
|
| NET_TRACE(1, " *** ") << "next_read: " << next_read.sequence_number;
|
| CHECK_GE(next_read.sequence_number, sequence_number_);
|
|
|
| + // Special case handling for hanging reads.
|
| + if (next_read.mode == ASYNC && next_read.result == ERR_IO_PENDING) {
|
| + NET_TRACE(1, " *** ") << "Hanging read";
|
| + helper_.AdvanceRead();
|
| + ++sequence_number_;
|
| + CHECK(helper_.AllReadDataConsumed());
|
| + return MockRead(SYNCHRONOUS, ERR_IO_PENDING);
|
| + }
|
| +
|
| if (next_read.sequence_number <= sequence_number_) {
|
| if (next_read.mode == SYNCHRONOUS) {
|
| NET_TRACE(1, " *** ") << "Returning synchronously";
|
| @@ -541,15 +550,6 @@
|
| return next_read;
|
| }
|
|
|
| - // If the result is ERR_IO_PENDING, then advance to the next state
|
| - // and pause reads.
|
| - if (next_read.result == ERR_IO_PENDING) {
|
| - NET_TRACE(1, " *** ") << "Pausing at: " << sequence_number_;
|
| - ++sequence_number_;
|
| - helper_.AdvanceRead();
|
| - read_state_ = PAUSED;
|
| - return MockRead(SYNCHRONOUS, ERR_IO_PENDING);
|
| - }
|
| base::MessageLoop::current()->PostTask(
|
| FROM_HERE, base::Bind(&SequencedSocketData::OnReadComplete,
|
| weak_factory_.GetWeakPtr()));
|
| @@ -624,19 +624,6 @@
|
| return helper_.AllWriteDataConsumed();
|
| }
|
|
|
| -bool SequencedSocketData::IsReadPaused() {
|
| - return read_state_ == PAUSED;
|
| -}
|
| -
|
| -void SequencedSocketData::CompleteRead() {
|
| - if (read_state_ != PAUSED) {
|
| - ADD_FAILURE() << "Unable to CompleteRead when not paused.";
|
| - return;
|
| - }
|
| - read_state_ = COMPLETING;
|
| - OnReadComplete();
|
| -}
|
| -
|
| void SequencedSocketData::MaybePostReadCompleteTask() {
|
| NET_TRACE(1, " ****** ") << " current: " << sequence_number_;
|
| // Only trigger the next read to complete if there is already a read pending
|
| @@ -646,16 +633,6 @@
|
| return;
|
| }
|
|
|
| - // If the result is ERR_IO_PENDING, then advance to the next state
|
| - // and pause reads.
|
| - if (helper_.PeekRead().result == ERR_IO_PENDING) {
|
| - NET_TRACE(1, " *** ") << "Pausing read at: " << sequence_number_;
|
| - ++sequence_number_;
|
| - helper_.AdvanceRead();
|
| - read_state_ = PAUSED;
|
| - return;
|
| - }
|
| -
|
| NET_TRACE(1, " ****** ") << "Posting task to complete read: "
|
| << sequence_number_;
|
| base::MessageLoop::current()->PostTask(
|
| @@ -703,8 +680,7 @@
|
| // before calling that.
|
| MaybePostWriteCompleteTask();
|
|
|
| - NET_TRACE(1, " *** ") << "Completing socket read for: "
|
| - << data.sequence_number;
|
| + NET_TRACE(1, " *** ") << "Completing socket read for: " << sequence_number_;
|
| DumpMockReadWrite(data);
|
| socket()->OnReadComplete(data);
|
| NET_TRACE(1, " *** ") << "Done";
|
| @@ -731,8 +707,7 @@
|
| // before calling that.
|
| MaybePostReadCompleteTask();
|
|
|
| - NET_TRACE(1, " *** ") << " Completing socket write for: "
|
| - << data.sequence_number;
|
| + NET_TRACE(1, " *** ") << " Completing socket write for: " << sequence_number_;
|
| socket()->OnWriteComplete(rv);
|
| NET_TRACE(1, " *** ") << "Done";
|
| }
|
|
|