diff options
author | klempner <klempner@google.com> | 2014-12-23 13:36:56 -0800 |
---|---|---|
committer | Jan Tattermusch <jtattermusch@google.com> | 2014-12-29 17:28:15 -0800 |
commit | 55af9b60cc75b5950c5a47612ba62fe97bc7ee3e (patch) | |
tree | ce9c2d588d2c7e52bb8a690dd1232af70e85b02e /src/core | |
parent | d94ad10cf1ef0b4c94b7f53e4e823d5b14127365 (diff) |
Have grpc_iomgr_work() adjust its poll deadline to account for the next alarm.
This fixes _low_test.py, once we reverse CL 82686562 accidentally reducing poll
timeouts to 1 us.
Change on 2014/12/23 by klempner <klempner@google.com>
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=82741776
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/iomgr/iomgr_libevent.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/core/iomgr/iomgr_libevent.c b/src/core/iomgr/iomgr_libevent.c index afaf113a02..6188ab2749 100644 --- a/src/core/iomgr/iomgr_libevent.c +++ b/src/core/iomgr/iomgr_libevent.c @@ -185,8 +185,8 @@ int grpc_iomgr_work(gpr_timespec deadline) { gpr_timespec now = gpr_now(); gpr_timespec next = grpc_alarm_list_next_timeout(); gpr_timespec delay_timespec = gpr_time_sub(deadline, now); - /* poll for no longer than 100 millis */ - gpr_timespec max_delay = {0, 1000}; + /* poll for no longer than one second */ + gpr_timespec max_delay = gpr_time_from_seconds(1); struct timeval delay; if (gpr_time_cmp(delay_timespec, gpr_time_0) <= 0) { @@ -197,6 +197,10 @@ int grpc_iomgr_work(gpr_timespec deadline) { delay_timespec = max_delay; } + /* Adjust delay to account for the next alarm, if applicable. */ + delay_timespec = gpr_time_min( + delay_timespec, gpr_time_sub(grpc_alarm_list_next_timeout(), now)); + delay = gpr_timeval_from_timespec(delay_timespec); if (maybe_do_queue_work() || maybe_do_alarm_work(now, next) || |