Merge remote-tracking branch 'upstream/master' into non_per_call_metrics_pf

pull/35984/head
Mark D. Roth 12 months ago
commit 02db004d5a
  1. 1
      src/core/ext/filters/channel_idle/channel_idle_filter.cc
  2. 8
      src/core/ext/filters/channel_idle/channel_idle_filter.h

@ -61,7 +61,6 @@ const NoInterceptor ChannelIdleFilter::Call::OnServerInitialMetadata;
const NoInterceptor ChannelIdleFilter::Call::OnServerTrailingMetadata;
const NoInterceptor ChannelIdleFilter::Call::OnClientToServerMessage;
const NoInterceptor ChannelIdleFilter::Call::OnServerToClientMessage;
const NoInterceptor ChannelIdleFilter::Call::OnFinalize;
namespace {

@ -54,16 +54,20 @@ class ChannelIdleFilter : public ImplementChannelFilter<ChannelIdleFilter> {
explicit Call(ChannelIdleFilter* filter) : filter_(filter) {
filter_->IncreaseCallCount();
}
~Call() { filter_->DecreaseCallCount(); }
~Call() { MaybeDecrement(); }
static const NoInterceptor OnClientInitialMetadata;
static const NoInterceptor OnServerInitialMetadata;
static const NoInterceptor OnServerTrailingMetadata;
static const NoInterceptor OnClientToServerMessage;
static const NoInterceptor OnServerToClientMessage;
static const NoInterceptor OnFinalize;
void OnFinalize(const grpc_call_final_info*) { MaybeDecrement(); }
private:
void MaybeDecrement() {
auto* filter = std::exchange(filter_, nullptr);
if (filter != nullptr) filter->DecreaseCallCount();
}
ChannelIdleFilter* filter_;
};

Loading…
Cancel
Save