Grpc HandlePushTask in one thread?


As above, it’s my understand that the grpc HandlePushTask request sequence.
My question is, why we do not let the task run on the thread pool, now only run on the task execution loop, so the long running job maybe starve other normal task.

In other words,

why we only post the sendreply routine on the servercallexecutor, not all the handle_request_function on the servercallexecutor, after all the server call executor is thread_pool, so we can handle the request more concurrently.

Or my understanding is wrong, please pointing it out.

long running job maybe starve other normal task.

you can run only 1 task at a time, so I believe this issue won’t happen. We already separated out IO thread and task execution thread.

My question is why we can only run 1 task at a time. And why post the SendReply into a boost thread_pool, not on the io thread.