aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/iomgr/pollset_posix.c
diff options
context:
space:
mode:
authorGravatar Craig Tiller <craig.tiller@gmail.com>2015-05-26 16:40:35 -0700
committerGravatar Craig Tiller <craig.tiller@gmail.com>2015-05-26 16:40:35 -0700
commita22bd9c17e3af5ed5eea1e83d8f758f20cad5241 (patch)
tree2560a22e263f255263f1f1457e2cd141abdea04f /src/core/iomgr/pollset_posix.c
parent595cc5bfe944bdb83a379e55aa52d064c37dceb7 (diff)
parent7fb570e2de261926a8c7af0c57d9583f8e419ae8 (diff)
Merge github.com:grpc/grpc into we-dont-need-no-backup
Diffstat (limited to 'src/core/iomgr/pollset_posix.c')
-rw-r--r--src/core/iomgr/pollset_posix.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/core/iomgr/pollset_posix.c b/src/core/iomgr/pollset_posix.c
index 6552b3f3b0..0751d1b4b7 100644
--- a/src/core/iomgr/pollset_posix.c
+++ b/src/core/iomgr/pollset_posix.c
@@ -121,6 +121,8 @@ void grpc_pollset_del_fd(grpc_pollset *pollset, grpc_fd *fd) {
int grpc_pollset_work(grpc_pollset *pollset, gpr_timespec deadline) {
/* pollset->mu already held */
gpr_timespec now = gpr_now();
+ /* FIXME(ctiller): see below */
+ gpr_timespec maximum_deadline = gpr_time_add(now, gpr_time_from_seconds(1));
int r;
if (gpr_time_cmp(now, deadline) > 0) {
return 0;
@@ -131,6 +133,11 @@ int grpc_pollset_work(grpc_pollset *pollset, gpr_timespec deadline) {
if (grpc_alarm_check(&pollset->mu, now, &deadline)) {
return 1;
}
+ /* FIXME(ctiller): we should not clamp deadline, however we have some
+ stuck at shutdown bugs that this resolves */
+ if (gpr_time_cmp(deadline, maximum_deadline) > 0) {
+ deadline = maximum_deadline;
+ }
gpr_tls_set(&g_current_thread_poller, (gpr_intptr)pollset);
r = pollset->vtable->maybe_work(pollset, deadline, now, 1);
gpr_tls_set(&g_current_thread_poller, 0);