Go to the documentation of this file.
21 #if defined(GPR_POSIX_SYNC) && !defined(GPR_ABSEIL_SYNC) && \
22 !defined(GPR_CUSTOM_SYNC)
34 #ifdef GPR_LOW_LEVEL_COUNTERS
36 gpr_atm gpr_counter_atm_cas = 0;
37 gpr_atm gpr_counter_atm_add = 0;
41 #ifdef GRPC_ASAN_ENABLED
42 GPR_ASSERT(pthread_mutex_init(&
mu->mutex,
nullptr) == 0);
43 mu->leak_checker =
static_cast<int*
>(malloc(
sizeof(*
mu->leak_checker)));
51 #ifdef GRPC_ASAN_ENABLED
53 free(
mu->leak_checker);
60 #ifdef GPR_LOW_LEVEL_COUNTERS
61 GPR_ATM_INC_COUNTER(gpr_mu_locks);
64 #ifdef GRPC_ASAN_ENABLED
73 #ifdef GRPC_ASAN_ENABLED
83 #ifdef GRPC_ASAN_ENABLED
84 err = pthread_mutex_trylock(&
mu->mutex);
86 err = pthread_mutex_trylock(
mu);
95 pthread_condattr_t
attr;
98 GPR_ASSERT(pthread_condattr_setclock(&
attr, CLOCK_MONOTONIC) == 0);
101 #ifdef GRPC_ASAN_ENABLED
103 cv->leak_checker =
static_cast<int*
>(malloc(
sizeof(*
cv->leak_checker)));
111 #ifdef GRPC_ASAN_ENABLED
113 free(
cv->leak_checker);
123 #ifdef GRPC_ASAN_ENABLED
124 err = pthread_cond_wait(&
cv->cond_var, &
mu->mutex);
126 err = pthread_cond_wait(
cv,
mu);
129 struct timespec abs_deadline_ts;
136 abs_deadline_ts.tv_sec =
static_cast<time_t
>(abs_deadline.tv_sec);
137 abs_deadline_ts.tv_nsec = abs_deadline.tv_nsec;
138 #ifdef GRPC_ASAN_ENABLED
139 err = pthread_cond_timedwait(&
cv->cond_var, &
mu->mutex, &abs_deadline_ts);
141 err = pthread_cond_timedwait(
cv,
mu, &abs_deadline_ts);
145 return err == ETIMEDOUT;
149 #ifdef GRPC_ASAN_ENABLED
157 #ifdef GRPC_ASAN_ENABLED
GPRAPI void gpr_cv_signal(gpr_cv *cv)
GPRAPI void gpr_mu_unlock(gpr_mu *mu)
#define GPR_TIMER_SCOPE(tag, important)
GPRAPI gpr_timespec gpr_inf_future(gpr_clock_type type)
GPRAPI void gpr_once_init(gpr_once *once, void(*init_function)(void))
GPRAPI void gpr_mu_destroy(gpr_mu *mu)
GPRAPI int gpr_time_cmp(gpr_timespec a, gpr_timespec b)
GPRAPI void gpr_cv_destroy(gpr_cv *cv)
GPRAPI void gpr_mu_init(gpr_mu *mu)
GPRAPI int gpr_cv_wait(gpr_cv *cv, gpr_mu *mu, gpr_timespec abs_deadline)
GPRAPI void gpr_mu_lock(gpr_mu *mu)
GPRAPI gpr_timespec gpr_now(gpr_clock_type clock)
gpr_clock_type clock_type
OPENSSL_EXPORT X509_ATTRIBUTE * attr
GPRAPI gpr_timespec gpr_time_max(gpr_timespec a, gpr_timespec b)
GPRAPI gpr_timespec gpr_convert_clock_type(gpr_timespec t, gpr_clock_type clock_type)
GPRAPI int gpr_mu_trylock(gpr_mu *mu)
GPRAPI void gpr_cv_broadcast(gpr_cv *cv)
GPRAPI void gpr_cv_init(gpr_cv *cv)
grpc
Author(s):
autogenerated on Thu Mar 13 2025 03:01:28