aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/lib/iomgr/ev_poll_posix.cc
diff options
context:
space:
mode:
authorGravatar kpayson64 <kpayson@google.com>2018-03-07 11:39:55 -0800
committerGravatar kpayson64 <kpayson@google.com>2018-03-07 11:39:55 -0800
commita37e8deeaea6b0685cc47213aacd121ae24d43d0 (patch)
tree567cc6d56b085c64ea16610a63151d2492d31ba8 /src/core/lib/iomgr/ev_poll_posix.cc
parenta75712a71f01c06d7e5868a75cb62b26d775e5df (diff)
Do poll for poll_posix engine when kicked with 0s timeout
Diffstat (limited to 'src/core/lib/iomgr/ev_poll_posix.cc')
-rw-r--r--src/core/lib/iomgr/ev_poll_posix.cc4
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;