[
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)