[
https://issues.apache.org/jira/browse/PROTON-2030?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16964040#comment-16964040
]
ASF GitHub Bot commented on PROTON-2030:
----------------------------------------
astitcher commented on pull request #180: PROTON-2030 Use CLOCK_MONOTONIC in
proactors for pn_transport_tick
URL: https://github.com/apache/qpid-proton/pull/180#discussion_r341148531
##########
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:
To be clear I agree that the external API should maintain signed values - it
really has to in any case for back compatibility. but the very specific case of
this subtraction needs to be done in correct wraparound mode so unsigned is
required here (even if you just cast it back immediately to signed)
----------------------------------------------------------------
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]
> Use CLOCK_MONOTONIC in proactors for pn_transport_tick
> ------------------------------------------------------
>
> Key: PROTON-2030
> URL: https://issues.apache.org/jira/browse/PROTON-2030
> Project: Qpid Proton
> Issue Type: Improvement
> Components: proton-c
> Affects Versions: proton-c-0.27.0
> Reporter: Jiri Daněk
> Priority: Major
>
> IOCP and epoll proactors are feeding wall clock time to pn_transport_tick. I
> tested (with epoll) that changing system clock breaks heartbeating.
> The libuv proactor does use monotonic already.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]