[ 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: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org