Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
proton-0.11.0
-
None
Description
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.