| Index: remoting/protocol/message_reader.cc
|
| diff --git a/remoting/protocol/message_reader.cc b/remoting/protocol/message_reader.cc
|
| index 153bde3292121482e3fe85c49407490642cfd7c9..44389d71473d6dc54a7bf7ac9333cfa1ef76d3af 100644
|
| --- a/remoting/protocol/message_reader.cc
|
| +++ b/remoting/protocol/message_reader.cc
|
| @@ -23,16 +23,8 @@ namespace protocol {
|
|
|
| static const int kReadBufferSize = 4096;
|
|
|
| -MessageReader::MessageReader()
|
| - : socket_(nullptr),
|
| - read_pending_(false),
|
| - pending_messages_(0),
|
| - closed_(false),
|
| - weak_factory_(this) {
|
| -}
|
| -
|
| -MessageReader::~MessageReader() {
|
| -}
|
| +MessageReader::MessageReader() : weak_factory_(this) {}
|
| +MessageReader::~MessageReader() {}
|
|
|
| void MessageReader::SetMessageReceivedCallback(
|
| const MessageReceivedCallback& callback) {
|
| @@ -57,8 +49,7 @@ void MessageReader::DoRead() {
|
| // Don't try to read again if there is another read pending or we
|
| // have messages that we haven't finished processing yet.
|
| bool read_succeeded = true;
|
| - while (read_succeeded && !closed_ && !read_pending_ &&
|
| - pending_messages_ == 0) {
|
| + while (read_succeeded && !closed_ && !read_pending_) {
|
| read_buffer_ = new net::IOBuffer(kReadBufferSize);
|
| int result = socket_->Read(
|
| read_buffer_.get(),
|
| @@ -116,30 +107,16 @@ void MessageReader::OnDataReceived(net::IOBuffer* data, int data_size) {
|
| CompoundBuffer* buffer = message_decoder_.GetNextMessage();
|
| if (!buffer)
|
| break;
|
| - pending_messages_++;
|
| base::ThreadTaskRunnerHandle::Get()->PostTask(
|
| FROM_HERE,
|
| - base::Bind(&MessageReader::RunCallback,
|
| - weak_factory_.GetWeakPtr(),
|
| + base::Bind(&MessageReader::RunCallback, weak_factory_.GetWeakPtr(),
|
| base::Passed(make_scoped_ptr(buffer))));
|
| }
|
| }
|
|
|
| void MessageReader::RunCallback(scoped_ptr<CompoundBuffer> message) {
|
| - if (!message_received_callback_.is_null()){
|
| - message_received_callback_.Run(
|
| - std::move(message),
|
| - base::Bind(&MessageReader::OnMessageDone, weak_factory_.GetWeakPtr()));
|
| - }
|
| -}
|
| -
|
| -void MessageReader::OnMessageDone() {
|
| - DCHECK(CalledOnValidThread());
|
| - pending_messages_--;
|
| - DCHECK_GE(pending_messages_, 0);
|
| -
|
| - // Start next read if necessary.
|
| - DoRead();
|
| + if (!message_received_callback_.is_null())
|
| + message_received_callback_.Run(std::move(message));
|
| }
|
|
|
| } // namespace protocol
|
|
|