Go to the documentation of this file.
40 if (cancel_state & kErrorBit) {
41 #ifdef GRPC_ERROR_IS_ABSEIL_STATUS
55 #ifdef GRPC_TSAN_ENABLED
57 grpc_schedule_on_exec_ctx);
63 #ifdef GRPC_ERROR_IS_ABSEIL_STATUS
72 #ifdef GRPC_TSAN_ENABLED
89 if (lock->taken.compare_exchange_strong(prev,
true)) {
95 if (lock !=
nullptr) {
98 GPR_ASSERT(lock->taken.compare_exchange_strong(prev,
false));
105 #ifdef GRPC_TSAN_ENABLED
114 #define DEBUG_ARGS const char *file, int line,
115 #define DEBUG_FMT_STR "%s:%d: "
116 #define DEBUG_FMT_ARGS , file, line
119 #define DEBUG_FMT_STR
120 #define DEBUG_FMT_ARGS
140 if (prev_size == 0) {
153 #ifdef GRPC_ERROR_IS_ABSEIL_STATUS
192 #ifdef GRPC_ERROR_IS_ABSEIL_STATUS
223 "call_combiner=%p: scheduling notify_on_cancel callback=%p "
224 "for pre-existing cancellation",
239 if (original_state != 0) {
243 "call_combiner=%p: scheduling old cancel callback=%p",
this,
257 #ifdef GRPC_ERROR_IS_ABSEIL_STATUS
259 gpr_atm new_state = kErrorBit | status_ptr;
267 #ifdef GRPC_ERROR_IS_ABSEIL_STATUS
275 if (original_state != 0) {
280 "call_combiner=%p: scheduling notify_on_cancel callback=%p",
281 this, notify_on_cancel);
#define GRPC_CLOSURE_INIT(closure, cb, cb_arg, scheduler)
#define gpr_atm_full_fetch_add(p, delta)
#define gpr_atm_no_barrier_store(p, value)
void SetNotifyOnCancel(grpc_closure *closure)
#define GRPC_STATS_INC_CALL_COMBINER_CANCELLED()
#define GPR_TIMER_SCOPE(tag, important)
uintptr_t StatusAllocHeapPtr(absl::Status s)
void reset(T *value=nullptr)
#define TSAN_ANNOTATE_RWLOCK_RELEASED(addr, is_w)
#define TSAN_ANNOTATE_RWLOCK_ACQUIRED(addr, is_w)
#define GRPC_STATS_INC_CALL_COMBINER_LOCKS_INITIATED()
void Start(grpc_closure *closure, grpc_error_handle error, const char *file, int line, const char *reason)
Starts processing closure.
#define GRPC_TRACE_FLAG_ENABLED(f)
void Cancel(grpc_error_handle error)
Indicates that the call has been cancelled.
#define GRPC_STATS_INC_CALL_COMBINER_LOCKS_SCHEDULED_ITEMS()
void ScheduleClosure(grpc_closure *closure, grpc_error_handle error)
def c_str(s, encoding='ascii')
GPRAPI void gpr_log(const char *file, int line, gpr_log_severity severity, const char *format,...) GPR_PRINT_FORMAT_CHECK(4
#define gpr_atm_acq_load(p)
absl::Status StatusGetFromHeapPtr(uintptr_t ptr)
Get the status from a heap ptr.
#define GRPC_STATS_INC_CALL_COMBINER_SET_NOTIFY_ON_CANCEL()
void Stop(const char *file, int line, const char *reason)
Yields the call combiner to the next closure in the queue, if any.
void StatusFreeHeapPtr(uintptr_t ptr)
Frees the allocated status at heap ptr.
#define GRPC_ERROR_REF(err)
Node * PopAndCheckEnd(bool *empty)
std::string grpc_error_std_string(grpc_error_handle error)
MultiProducerSingleConsumerQueue queue_
DebugOnlyTraceFlag grpc_call_combiner_trace(false, "call_combiner")
#define GRPC_ERROR_UNREF(err)
static void Run(const DebugLocation &location, grpc_closure *closure, grpc_error_handle error)
absl::Status StatusMoveFromHeapPtr(uintptr_t ptr)
Move the status from a heap ptr. (GetFrom & FreeHeap)
PHP_PROTO_OBJECT_FREE_END PHP_PROTO_OBJECT_DTOR_END intern self
TraceFlag DebugOnlyTraceFlag
#define GPR_TIMER_MARK(tag, important)
static void Run(const DebugLocation &location, grpc_closure *closure, grpc_error_handle error)
#define GRPC_ERROR_IS_NONE(err)
#define gpr_atm_full_cas(p, o, n)
grpc
Author(s):
autogenerated on Fri May 16 2025 02:57:51