Go to the documentation of this file.
47 thd_mgr_->MainWorkLoop();
48 thd_mgr_->MarkAsCompleted(
this);
57 int min_pollers,
int max_pollers)
117 std::list<WorkerThread*> completed_threads;
124 for (
auto thd : completed_threads)
delete thd;
130 "No thread quota available to even create the minimum required "
131 "polling threads (i.e %d). Unable to start the thread manager",
160 switch (work_status) {
173 bool resource_exhausted =
false;
192 resource_exhausted =
true;
204 resource_exhausted =
true;
void Lock() ABSL_EXCLUSIVE_LOCK_FUNCTION()
struct grpc_resource_quota grpc_resource_quota
static void worker(void *arg)
ThreadManager(const char *name, grpc_resource_quota *resource_quota, int min_pollers, int max_pollers)
virtual WorkStatus PollForWork(void **tag, bool *ok)=0
WorkerThread(ThreadManager *thd_mgr)
grpc_core::ThreadQuotaPtr thread_quota_
ResourceQuotaRefPtr resource_quota
std::list< WorkerThread * > completed_threads_
static void * tag(intptr_t t)
GPRAPI void gpr_log(const char *file, int line, gpr_log_severity severity, const char *format,...) GPR_PRINT_FORMAT_CHECK(4
void Release() ABSL_UNLOCK_FUNCTION()
virtual void DoWork(void *tag, bool ok, bool resources)=0
void MarkAsCompleted(WorkerThread *thd)
grpc_core::CondVar shutdown_cv_
int GetMaxActiveThreadsSoFar()
int max_active_threads_sofar_
void CleanupCompletedThreads()
grpc_core::Mutex list_mu_
grpc
Author(s):
autogenerated on Thu Mar 13 2025 03:01:37