GitHub user prestona opened a pull request: https://github.com/apache/qpid-proton/pull/40
PROTON-881: Make connect a non-blocking operation Previously connecting was a blocking operation which meant that if the server being connected to took a long time to accept the connection this blocked all other work in an instance of the Reactor. This commit makes connect a non-blocking operation, allowing the reactor to continue processing other work while the connection is established (or not). Unfortunately, I've not found a satisfactory way to test this behavior in the test suite - because Java never blocks during connect if it is using the loopback adapter. Instead, to test the non-blocking connect code path, I had to configure firewall rules to drop all packets sent to a particular port. You can merge this pull request into a Git repository by running: $ git pull https://github.com/prestona/qpid-proton reactor Alternatively you can review and apply these changes as the patch at: https://github.com/apache/qpid-proton/pull/40.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #40 ---- commit 4f2bac8ba136866c55e136fd6a71588bca7c179d Author: Adrian Preston <prest...@uk.ibm.com> Date: 2015-06-26T22:58:21Z PROTON-881: Make connect a non-blocking operation Previously connecting was a blocking operation which meant that if the server being connected to took a long time to accept the connection this blocked all other work in an instance of the Reactor. This commit makes connect a non-blocking operation, allowing the reactor to continue processing other work while the connection is established (or not). Unfortunately, I've not found a satisfactory way to test this behavior in the test suite - because Java never blocks during connect if it is using the loopback adapter. Instead, to test the non-blocking connect code path, I had to configure firewall rules to drop all packets sent to a particular port. commit f06a1bb3f931531bee6891fa4036fdd2695039cc Author: Adrian Preston <prest...@uk.ibm.com> Date: 2015-06-27T19:48:37Z PROTON-881: Tidy up TODOs in proton-j reactor code About half the TODOs were me being overly paranoid. The rest generally required some tidy-up. One decision I made was to swallow IOExceptions thrown from closing something - because there was no other cleanup action that could be taken - and rethrowing as an unchecked exception seemed a little heavy-handed. commit 19d23dfbc8178e4dffc2173f00a4c9a526c33601 Author: Adrian Preston <prest...@uk.ibm.com> Date: 2015-06-30T23:30:53Z PROTON-881: Tidy up and doc reactor interfaces Tidy up the Java interfaces for the proton-j reactor by removing a few unnecessary setters. Document the interfaces using Javadoc. commit a29254752a08285192aae878db9986f4af569d2c Author: Adrian Preston <prest...@uk.ibm.com> Date: 2015-07-01T00:22:55Z PROTON-881: Tidy up proton-j reactor examples Tidy up comments and more closely mirror the Python examples. ---- --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---