[ 
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

Reply via email to