diff options
author | 2018-10-29 14:11:08 -0700 | |
---|---|---|
committer | 2018-10-29 14:11:08 -0700 | |
commit | 8352f9d274e43b48b0fea362660036c663b4d879 (patch) | |
tree | 9bf6371072a192f26817133f84f8b78475e412ff /src | |
parent | 9887feed4669524609db0ecbe99bff74afd6bea4 (diff) |
Fix handling of call context in health check call batch payload.
Diffstat (limited to 'src')
-rw-r--r-- | src/core/ext/filters/client_channel/health/health_check_client.cc | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/core/ext/filters/client_channel/health/health_check_client.cc b/src/core/ext/filters/client_channel/health/health_check_client.cc index a3c782d8c9..591637aa86 100644 --- a/src/core/ext/filters/client_channel/health/health_check_client.cc +++ b/src/core/ext/filters/client_channel/health/health_check_client.cc @@ -299,6 +299,11 @@ HealthCheckClient::CallState::~CallState() { health_check_client_.get(), this); } if (call_ != nullptr) GRPC_SUBCHANNEL_CALL_UNREF(call_, "call_ended"); + for (size_t i = 0; i < GRPC_CONTEXT_COUNT; i++) { + if (context_[i].destroy != nullptr) { + context_[i].destroy(context_[i].value); + } + } // Unset the call combiner cancellation closure. This has the // effect of scheduling the previously set cancellation closure, if // any, so that it can release any internal references it may be @@ -346,6 +351,7 @@ void HealthCheckClient::CallState::StartCall() { } // Initialize payload and batch. memset(&batch_, 0, sizeof(batch_)); + payload_.context = context_; batch_.payload = &payload_; // on_complete callback takes ref, handled manually. Ref(DEBUG_LOCATION, "on_complete").release(); |