The context, following from our previous thread, is that we want to add 
grpc endpoints to an existing high-performance application. Our application 
already has extensive control over the allocations and threading on the 
system, so *we would prefer a single-threaded grpc server* that hands off 
async requests to our own work queue.

All of the above seems to be working in Alex's prototype, but we want to 
make sure that stopping these threads is not going to cause problems down 
the line.

1. What is the purpose of the timer thread?
2. Should everything Just Work™ even if we call 
`grpc_timer_manager_set_threading(false)`

Thanks,
Jonathan

On Monday, June 28, 2021 at 9:19:31 PM UTC-7 Alex Zuo wrote:

> For executor threads, we can use Executor::SetThreadingAll(false) to shut 
> down. If there is no thread, it still works according to the following code.
>
> void Executor::Enqueue(grpc_closure* closure, grpc_error_handle error,
> bool is_short)
> ... 
> do {
> retry_push = false;
> size_t cur_thread_count =
> static_cast<size_t>(gpr_atm_acq_load(&num_threads_));
>
> * // If the number of threads is zero(i.e either the executor is not 
> threaded*
> * // or already shutdown), then queue the closure on the exec context 
> itself*
> *if (cur_thread_count == 0) {*
> #ifndef NDEBUG
> EXECUTOR_TRACE("(%s) schedule %p (created %s:%d) inline", name_, closure,
> closure->file_created, closure->line_created);
> #else
> EXECUTOR_TRACE("(%s) schedule %p inline", name_, closure);
> #endif
> grpc_closure_list_append(grpc_core::ExecCtx::Get()->closure_list(),
> closure, error);
> return;
> }
>
> For the timer thread, there is a function to shut it down. However I 
> cannot tell what is the impact if there is no such a thread. I also don't 
> know the timer is used.
>
> void grpc_timer_manager_set_threading(bool enabled);
>
> Anybody has any insight? 
>
> Thanks,
> Alex
>

-- 
You received this message because you are subscribed to the Google Groups 
"grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to grpc-io+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/0a66b4c6-c36f-4576-b015-5d47de109e77n%40googlegroups.com.

Reply via email to