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.
---