[
https://issues.apache.org/jira/browse/PROTON-1496?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16542995#comment-16542995
]
Alan Conway commented on PROTON-1496:
-------------------------------------
The libuv and ruby implementations use the select/poll timeout parameter. Each
time select/poll is entered with a timeout reflecting the minimum tick/timeout
of all known tasks, so no separate timers are required.
However this works well because both those implementations do their polling in
a single thread that can safely examine all the tasks current pending IO, and
there is only ever a single poll() call to set a timeout on. This would require
moreĀ thought for a multi-threaded poller, and may not be the best approach -
but it is worth considering as a possibility.
> C epoll proactor needs better timer implementation for connections
> ------------------------------------------------------------------
>
> Key: PROTON-1496
> URL: https://issues.apache.org/jira/browse/PROTON-1496
> Project: Qpid Proton
> Issue Type: Improvement
> Components: proton-c
> Affects Versions: proton-c-0.18.0
> Environment: Linux environments with epoll support
> Reporter: Cliff Jansen
> Assignee: Alan Conway
> Priority: Major
>
> The epoll proactor allocates a timerfd per connection. This is a convenience
> for the initial implementation and may surprise some applications running
> into system limits on file descriptors twice as fast as expected.
> The timer is used for heartbeats. It should be possible to write a
> per-proactor heartbeat timer that is shared among the connections
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]