diff options
author | David Garcia Quintas <dgq@google.com> | 2015-05-26 15:31:01 -0700 |
---|---|---|
committer | David Garcia Quintas <dgq@google.com> | 2015-05-26 15:31:01 -0700 |
commit | c5902879d8b305f5e8b3339fdb2e1906f58beaa9 (patch) | |
tree | e48b94cdf4f43282aeab5a4cb21df2030b8226cd /src/core/iomgr/pollset_posix.c | |
parent | f01ccb7ba3a332b60b734e360d43f1f893177e34 (diff) | |
parent | d679eb9498cfd673877c8526760591a99fc8bc4a (diff) |
Merge branch 'master' of github.com:grpc/grpc into qps_reporter_refactoring
Diffstat (limited to 'src/core/iomgr/pollset_posix.c')
-rw-r--r-- | src/core/iomgr/pollset_posix.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/core/iomgr/pollset_posix.c b/src/core/iomgr/pollset_posix.c index ab1af0d4ee..f496ac5bfa 100644 --- a/src/core/iomgr/pollset_posix.c +++ b/src/core/iomgr/pollset_posix.c @@ -174,6 +174,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; @@ -184,6 +186,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); |