diff options
author | Yang Gao <yangg@google.com> | 2015-02-17 12:08:43 -0800 |
---|---|---|
committer | Yang Gao <yangg@google.com> | 2015-02-17 12:08:43 -0800 |
commit | 467d7bd414238427c051a44316d64d267c068ea3 (patch) | |
tree | bce8894aed72de1f6a6c0e2960a7065f1c4c1459 | |
parent | 0b7c4d29d43390247a45295453184cd140a6fc6a (diff) |
When the entire op fails, the recv_message is always discarded.
-rw-r--r-- | src/cpp/common/call.cc | 2 | ||||
-rw-r--r-- | src/cpp/server/server.cc | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/src/cpp/common/call.cc b/src/cpp/common/call.cc index 0922a6e460..70daa6a3b0 100644 --- a/src/cpp/common/call.cc +++ b/src/cpp/common/call.cc @@ -256,7 +256,7 @@ void CallOpBuffer::FinalizeResult(void** tag, bool* status) { if (recv_message_) { if (recv_message_buf_) { got_message = true; - *status &= DeserializeProto(recv_message_buf_, recv_message_); + *status = *status && DeserializeProto(recv_message_buf_, recv_message_); grpc_byte_buffer_destroy(recv_message_buf_); recv_message_buf_ = nullptr; } else { diff --git a/src/cpp/server/server.cc b/src/cpp/server/server.cc index 35ced54aa7..ee9a1daa8e 100644 --- a/src/cpp/server/server.cc +++ b/src/cpp/server/server.cc @@ -314,7 +314,7 @@ class Server::AsyncRequest final : public CompletionQueueTag { *tag = tag_; if (*status && request_) { if (payload_) { - *status &= DeserializeProto(payload_, request_); + *status = *status && DeserializeProto(payload_, request_); } else { *status = false; } |