Go to the documentation of this file.
23 #include "absl/status/status.h"
24 #include "absl/types/optional.h"
64 "got on_complete from cancel_stream batch");
76 self->elem_->filter->start_transport_stream_op_batch(
self->elem_,
batch);
93 "deadline exceeded -- sending cancel_stream op");
154 op->payload->recv_trailing_metadata.recv_trailing_metadata_ready;
157 grpc_schedule_on_exec_ctx);
158 op->payload->recv_trailing_metadata.recv_trailing_metadata_ready =
180 if (!
state->in_call_combiner) {
183 state->in_call_combiner =
true;
186 "scheduling deadline timer");
191 "done scheduling deadline timer");
197 : call_stack(
args.call_stack),
198 call_combiner(
args.call_combiner),
213 grpc_schedule_on_exec_ctx);
232 if (
op->cancel_stream) {
237 if (
op->recv_trailing_metadata) {
315 if (
op->cancel_stream) {
321 if (
op->recv_initial_metadata) {
323 op->payload->recv_initial_metadata.recv_initial_metadata_ready;
325 op->payload->recv_initial_metadata.recv_initial_metadata;
328 grpc_schedule_on_exec_ctx);
329 op->payload->recv_initial_metadata.recv_initial_metadata_ready =
337 if (
op->recv_trailing_metadata) {
387 builder->channel_init()->RegisterStage(
392 .value_or(!
args.WantMinimalStack())) {
393 builder->PrependFilter(filter);
#define GRPC_CLOSURE_INIT(closure, cb, cb_arg, scheduler)
static void recv_initial_metadata_ready(void *arg, grpc_error_handle error)
void RegisterDeadlineFilter(CoreConfiguration::Builder *builder)
static void start_timer_if_needed(grpc_call_element *elem, grpc_core::Timestamp deadline)
const grpc_channel_filter grpc_client_deadline_filter
static void start_timer_after_init(void *arg, grpc_error_handle error)
grpc_metadata_batch * recv_initial_metadata
const grpc_channel_filter grpc_server_deadline_filter
static void YieldCallCombiner(void *arg, grpc_error_handle)
bool grpc_deadline_checking_enabled(const grpc_channel_args *channel_args)
static void recv_trailing_metadata_ready(void *arg, grpc_error_handle error)
void grpc_channel_next_op(grpc_channel_element *elem, grpc_transport_op *op)
@ GRPC_CLIENT_DIRECT_CHANNEL
grpc_deadline_state deadline_state
start_timer_after_init_state(grpc_call_element *elem, grpc_core::Timestamp deadline)
@ GRPC_STATUS_DEADLINE_EXCEEDED
void grpc_call_stack_ignore_set_pollset_or_pollset_set(grpc_call_element *, grpc_polling_entity *)
#define GRPC_ERROR_CANCELLED
grpc_core::ScopedArenaPtr arena
grpc_closure recv_initial_metadata_ready
void Cancel(grpc_error_handle error)
Indicates that the call has been cancelled.
bool grpc_channel_arg_get_bool(const grpc_arg *arg, bool default_value)
~start_timer_after_init_state()
static void deadline_destroy_call_elem(grpc_call_element *elem, const grpc_call_final_info *, grpc_closure *)
grpc_core::CallCombiner * call_combiner
#define GRPC_CALL_STACK_UNREF(call_stack, reason)
#define GRPC_ARG_ENABLE_DEADLINE_CHECKS
grpc_closure recv_trailing_metadata_ready
void grpc_channel_stack_no_post_init(grpc_channel_stack *, grpc_channel_element *)
grpc_deadline_state(grpc_call_element *elem, const grpc_call_element_args &args, grpc_core::Timestamp deadline)
grpc_closure * original_recv_trailing_metadata_ready
static void inject_recv_trailing_metadata_ready(grpc_deadline_state *deadline_state, grpc_transport_stream_op_batch *op)
grpc_error_handle cancel_error
void grpc_channel_next_get_info(grpc_channel_element *elem, const grpc_channel_info *channel_info)
#define GRPC_CALL_COMBINER_STOP(call_combiner, reason)
static void deadline_server_start_transport_stream_op_batch(grpc_call_element *elem, grpc_transport_stream_op_batch *op)
grpc_transport_stream_op_batch_payload * payload
static void cancel_timer_if_needed(grpc_deadline_state *deadline_state)
void grpc_call_next_op(grpc_call_element *elem, grpc_transport_stream_op_batch *op)
grpc_transport_stream_op_batch * batch
#define GRPC_CALL_COMBINER_START(call_combiner, closure, error, reason)
#define GRPC_ERROR_CREATE_FROM_STATIC_STRING(desc)
bool grpc_channel_args_want_minimal_stack(const grpc_channel_args *args)
struct server_call_data server_call_data
grpc_transport_stream_op_batch * grpc_make_transport_stream_op(grpc_closure *on_complete)
void grpc_deadline_state_client_start_transport_stream_op_batch(grpc_call_element *elem, grpc_transport_stream_op_batch *op)
void grpc_timer_cancel(grpc_timer *timer)
struct base_call_data base_call_data
#define GRPC_ERROR_REF(err)
static void deadline_client_start_transport_stream_op_batch(grpc_call_element *elem, grpc_transport_stream_op_batch *op)
grpc_error_handle grpc_error_set_int(grpc_error_handle src, grpc_error_ints which, intptr_t value)
static void TimerCallback(void *arg, grpc_error_handle error)
grpc_core::Timestamp deadline
void grpc_deadline_state_reset(grpc_call_element *elem, grpc_core::Timestamp new_deadline)
grpc_call_element * elem_
static grpc_error_handle deadline_init_channel_elem(grpc_channel_element *, grpc_channel_element_args *args)
static void deadline_destroy_channel_elem(grpc_channel_element *)
grpc_closure * next_recv_initial_metadata_ready
void grpc_timer_init(grpc_timer *timer, grpc_core::Timestamp deadline, grpc_closure *closure)
TimerState(grpc_call_element *elem, Timestamp deadline)
static void Run(const DebugLocation &location, grpc_closure *closure, grpc_error_handle error)
grpc_call_stack * call_stack
static constexpr Timestamp InfFuture()
static void SendCancelOpInCallCombiner(void *arg, grpc_error_handle error)
static grpc_error_handle deadline_init_call_elem(grpc_call_element *elem, const grpc_call_element_args *args)
#define GRPC_CALL_STACK_REF(call_stack, reason)
PHP_PROTO_OBJECT_FREE_END PHP_PROTO_OBJECT_DTOR_END intern self
const grpc_arg * grpc_channel_args_find(const grpc_channel_args *args, const char *name)
static void Run(const DebugLocation &location, grpc_closure *closure, grpc_error_handle error)
@ GRPC_ERROR_INT_GRPC_STATUS
grpc status code representing this error
static struct rpc_state state
struct grpc_transport_stream_op_batch_payload::@46 cancel_stream
#define GRPC_CHANNEL_INIT_BUILTIN_PRIORITY
grpc_core::TimerState * timer_state
grpc
Author(s):
autogenerated on Fri May 16 2025 02:58:08