Do poll for poll_posix engine when kicked with 0s timeout

pull/14448/head
kpayson64 7 years ago
parent a75712a71f
commit a37e8deeae
  1. 4
      src/core/lib/iomgr/ev_poll_posix.cc

@ -867,7 +867,6 @@ static grpc_error* pollset_work(grpc_pollset* pollset,
grpc_pollset_worker** worker_hdl,
grpc_millis deadline) {
GPR_TIMER_SCOPE("pollset_work", 0);
grpc_pollset_worker worker;
if (worker_hdl) *worker_hdl = &worker;
grpc_error* error = GRPC_ERROR_NONE;
@ -918,7 +917,8 @@ static grpc_error* pollset_work(grpc_pollset* pollset,
gpr_tls_set(&g_current_thread_poller, (intptr_t)pollset);
while (keep_polling) {
keep_polling = 0;
if (!pollset->kicked_without_pollers) {
if (!pollset->kicked_without_pollers ||
deadline <= grpc_core::ExecCtx::Get()->Now()) {
if (!added_worker) {
push_front_worker(pollset, &worker);
added_worker = 1;

Loading…
Cancel
Save