aboutsummaryrefslogtreecommitdiff
path: root/src/core/lib/channel/promise_based_filter.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/lib/channel/promise_based_filter.cc')
-rw-r--r--src/core/lib/channel/promise_based_filter.cc8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/core/lib/channel/promise_based_filter.cc b/src/core/lib/channel/promise_based_filter.cc
index 67c6700d6f..8e9632e8b3 100644
--- a/src/core/lib/channel/promise_based_filter.cc
+++ b/src/core/lib/channel/promise_based_filter.cc
@@ -17,7 +17,6 @@
#include "src/core/lib/channel/promise_based_filter.h"
#include <algorithm>
-#include <initializer_list>
#include <memory>
#include <string>
#include <utility>
@@ -721,7 +720,7 @@ void BaseCallData::ReceiveMessage::OnComplete(absl::Status status) {
Crash(absl::StrFormat("ILLEGAL STATE: %s", StateString(state_)));
case State::kForwardedBatchNoPipe:
state_ = State::kBatchCompletedNoPipe;
- return;
+ break;
case State::kForwardedBatch:
state_ = State::kBatchCompleted;
break;
@@ -784,6 +783,8 @@ void BaseCallData::ReceiveMessage::Done(const ServerMetadata& metadata,
}
} break;
case State::kBatchCompletedNoPipe:
+ state_ = State::kBatchCompletedButCancelledNoPipe;
+ break;
case State::kBatchCompletedButCancelled:
case State::kBatchCompletedButCancelledNoPipe:
Crash(absl::StrFormat("ILLEGAL STATE: %s", StateString(state_)));
@@ -1313,10 +1314,13 @@ ClientCallData::ClientCallData(grpc_call_element* elem,
}
ClientCallData::~ClientCallData() {
+ ScopedActivity scoped_activity(this);
GPR_ASSERT(poll_ctx_ == nullptr);
if (recv_initial_metadata_ != nullptr) {
recv_initial_metadata_->~RecvInitialMetadata();
}
+ initial_metadata_outstanding_token_ =
+ ClientInitialMetadataOutstandingToken::Empty();
}
std::string ClientCallData::DebugTag() const {