astitcher commented on a change in pull request #180: PROTON-2030 Use 
CLOCK_MONOTONIC in proactors for pn_transport_tick
URL: https://github.com/apache/qpid-proton/pull/180#discussion_r341147231
 
 

 ##########
 File path: c/src/proactor/epoll.c
 ##########
 @@ -1426,10 +1419,10 @@ static void pconnection_tick(pconnection_t *pc) {
   pn_transport_t *t = pc->driver.transport;
   if (pn_transport_get_idle_timeout(t) || 
pn_transport_get_remote_idle_timeout(t)) {
     ptimer_set(&pc->timer, 0);
-    uint64_t now = pn_i_now2();
-    uint64_t next = pn_transport_tick(t, now);
+    int64_t now = pn_proactor_now_64();
+    int64_t next = pn_transport_tick(t, now);
     if (next) {
-      ptimer_set(&pc->timer, next - now);
+      ptimer_set(&pc->timer, (uint64_t) next - now);
     }
 
 Review comment:
   @jdanekrh If it helps the unsigned arithmetic is still correct when the cast 
signed values are negative. And given that the C language only defines unsigned 
arithmetic to be correctly wrapping the subtraction must use uints.
   
   @alanconway you are assuming that the now value is based at 0 which is not a 
given - and in fact it is common to test timer wraparound by starting the 'now' 
monotonic timer at MAXINT-a few minutes.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to