diff options
author | kpayson64 <kpayson@google.com> | 2018-03-07 11:39:55 -0800 |
---|---|---|
committer | kpayson64 <kpayson@google.com> | 2018-03-07 11:39:55 -0800 |
commit | a37e8deeaea6b0685cc47213aacd121ae24d43d0 (patch) | |
tree | 567cc6d56b085c64ea16610a63151d2492d31ba8 | |
parent | a75712a71f01c06d7e5868a75cb62b26d775e5df (diff) |
Do poll for poll_posix engine when kicked with 0s timeout
-rw-r--r-- | src/core/lib/iomgr/ev_poll_posix.cc | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/core/lib/iomgr/ev_poll_posix.cc b/src/core/lib/iomgr/ev_poll_posix.cc index e630ddf8e0..8d85a1f799 100644 --- a/src/core/lib/iomgr/ev_poll_posix.cc +++ b/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; |