[
https://issues.apache.org/jira/browse/PROTON-2247?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17159721#comment-17159721
]
ASF GitHub Bot commented on PROTON-2247:
----------------------------------------
cliffjansen commented on pull request #265:
URL: https://github.com/apache/qpid-proton/pull/265#issuecomment-659897035
The scenario I can envision is
Thread A calls pni_raw_connection_done(), resulting in a call to
rearm_polling().
Thread B is the poller and finds IO on the raw connection, sets
sched_io_events and ctx->sched_pending for the raw connection, then releases
the sched_mutex.
Thread A, still in pni_raw_connection_done(), now acquires the sched_mutex
and in unassign_thread() realizes there is remaining work to do so it places
itself on the proactor wake list to return eventually to process the io event.
Thread C becomes the raw connection's next runner via
pni_raw_connection_process(c, sched_wake), with sched_wake as true and
generates the PN_RAW_CONNECTION_WAKE. There may have been zero calls to
pn_raw_connection_wake() for the life of this raw connection.
You can also get an internal wake if certain errors are encountered in
pn_proactor_raw_connect(), but as I read the code, sched_wake is ignored in
pni_raw_connection_process() due to disconnect logic prior to the call to
if (sched_wake) pni_raw_wake(&rc->raw_connection);
----------------------------------------------------------------
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]
> [c] Proactor API to support 'raw' TCP connections using the proactor event
> loop
> -------------------------------------------------------------------------------
>
> Key: PROTON-2247
> URL: https://issues.apache.org/jira/browse/PROTON-2247
> Project: Qpid Proton
> Issue Type: New Feature
> Components: proton-c
> Reporter: Andrew Stitcher
> Assignee: Andrew Stitcher
> Priority: Major
> Fix For: proton-c-0.32.0
>
>
> There are applications that use amqp together with some other protocol (http
> for example). It is currently difficult to combine other TCP use with amqp
> use when using proton and the proactor.
> It will be useful to be able to combine using 'raw' TCP connections with AMQP
> connections in a single proactor event loop.
> This will allow you to write application combining multiple protocols with
> AMQP without having to use multiple event loops and hence probably threads.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]