[
https://issues.apache.org/jira/browse/QPID-8534?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Marek Laca updated QPID-8534:
-----------------------------
Summary: [Broker-J] Improper interruption of connection processing loop
(was: [Broker-J] Improper interuption of connection processing loop)
> [Broker-J] Improper interruption of connection processing loop
> --------------------------------------------------------------
>
> Key: QPID-8534
> URL: https://issues.apache.org/jira/browse/QPID-8534
> Project: Qpid
> Issue Type: Improvement
> Components: Broker-J
> Reporter: Marek Laca
> Priority: Minor
> Labels: Broker, Connection, Java
>
> The network connection scheduler (NetworkConnectionScheduler class) contains
> a thread pool. IO-threads are polling jobs from the scheduler work queue and
> executing them. The connection job works in the loop. The loop is interrupted
> when there is not any data to process or all IO-threads are occupied.
> If the loop is interrupted then the IO-thread pushes the connection job back
> into the queue and picks the next job from the queue. It should ensure that
> any job is not abandoned and it is not waiting in the queue for ever.
> But when the number of jobs equals to the thread pool size then IO-thread
> stops processing the connection job, pushes it back into the queue and polls
> the same job again, again and again.
> The connection job could check whether is there any job in the scheduler
> queue. If the queue was not empty then the connection working loop would be
> interrupted and the thread could pick up another job. It would simplified the
> broker code significantly.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]