[ 
https://issues.apache.org/jira/browse/QPID-4997?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13730868#comment-13730868
 ] 

Ted Ross commented on QPID-4997:
--------------------------------

Rather than attempt to make the Proton objects thread-safe, the approach to 
fixing this problem is to enqueue not just messages for delivery on a different 
connection but also state change events (settlement, disposition change, etc.).

Previously, message deliveries were enqueued for delivery on a different thread 
but disposition changes, settlement, and offered were done synchronously in the 
receiving thread.

As changed, all of the above are enqueued for asynchronous processing in a 
thread that has the proper access to the target connection.
                
> Dispatch - Thread safety issues in the usage of Proton
> ------------------------------------------------------
>
>                 Key: QPID-4997
>                 URL: https://issues.apache.org/jira/browse/QPID-4997
>             Project: Qpid
>          Issue Type: Bug
>          Components: Qpid Dispatch
>            Reporter: Ted Ross
>            Assignee: Ted Ross
>
> Dispatch, being an intermediary, often needs to deal with activating and 
> modifying multiple links synchronously.  There are several Proton calls that 
> are invoked on threads in violation of the 
> one-thread-at-a-time-per-connection rule.
> A mechanism needs to be put in place whereby delivery 
> (settlement/disposition) and link (flow/offer) can be safely scheduled for 
> later processing on a "proper" thread.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to