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

ASF subversion and git services commented on PROTON-1045:
---------------------------------------------------------

Commit 91fe6e0fda07efa07f10a97d906eee114c86d6bf in qpid-proton's branch 
refs/heads/master from [~aconway]
[ https://git-wip-us.apache.org/repos/asf?p=qpid-proton.git;h=91fe6e0 ]

PROTON-1045: Use of callbacks to handle accepted endpoints violates design 
goals.

Get rid of use of callback functions that run in proton goroutine.
Use a channel instead for Incoming requests, all user code runs in user 
goroutines.
Safer and more consistent.


> Use of callbacks to handle accepted endpoints violates design goals.
> --------------------------------------------------------------------
>
>                 Key: PROTON-1045
>                 URL: https://issues.apache.org/jira/browse/PROTON-1045
>             Project: Qpid Proton
>          Issue Type: Bug
>          Components: go-binding
>    Affects Versions: 0.11
>            Reporter: Alan Conway
>            Assignee: Alan Conway
>             Fix For: 0.12.0
>
>
> The electron.Connectoin takes an "accept" callback function to process 
> incoming endpoint requests (sessions, links) This violates the original 
> design goal to have no user code called in the proton goroutine. It relies on 
> the user knowing which functions they are allowed to call in the callback 
> since  many user-facing functions can deadlock if called in the proton 
> goroutine.
> Fix this by having proton provide Incoming requests to the user via a 
> channel. This is also more consistent with typical use of the go net package: 
> when there is something to accept, you start a goroutine to do it, you don't 
> register a callback. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to