Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(481)

Unified Diff: remoting/protocol/message_reader.cc

Issue 1655433002: Remove done notifications from incoming message handlers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: remoting/protocol/message_reader.cc
diff --git a/remoting/protocol/message_reader.cc b/remoting/protocol/message_reader.cc
index 153bde3292121482e3fe85c49407490642cfd7c9..aaef3e1230439c3dccd8852077c15bca0dbc3fb0 100644
--- a/remoting/protocol/message_reader.cc
+++ b/remoting/protocol/message_reader.cc
@@ -26,13 +26,10 @@ static const int kReadBufferSize = 4096;
MessageReader::MessageReader()
: socket_(nullptr),
read_pending_(false),
- pending_messages_(0),
closed_(false),
Jamie 2016/01/29 23:48:12 Optional: Since you're modifying this anyway, cons
Sergey Ulanov 2016/01/30 00:14:47 Done.
- weak_factory_(this) {
-}
+ weak_factory_(this) {}
-MessageReader::~MessageReader() {
-}
+MessageReader::~MessageReader() {}
void MessageReader::SetMessageReceivedCallback(
const MessageReceivedCallback& callback) {
@@ -57,8 +54,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 +112,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

Powered by Google App Engine
This is Rietveld 408576698