Uploaded image for project: 'Qpid Proton'
  1. Qpid Proton
  2. PROTON-1045

Use of callbacks to handle accepted endpoints violates design goals.

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 0.11.0
    • Fix Version/s: 0.12.0
    • Component/s: go-binding
    • Labels:
      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.

        Attachments

          Activity

            People

            • Assignee:
              aconway Alan Conway
              Reporter:
              aconway Alan Conway
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: